Remixes of www.hobien.com.vn
Latest remixes
No public remixes yet. Be the first to make one.
Remix itLatest remixes
No public remixes yet. Be the first to make one.
Remix itSwitch between the rendered Visual preview and the Raw DESIGN.md.
version: alpha
name: Hobien
description: |
Hobien embodies a contemporary, professional aesthetic grounded in dark
minimalism and strategic color accents. The design system prioritizes clean
typography, generous whitespace, and purposeful use of a vibrant brand red to
guide user action. The overall mood is sophisticated and trustworthy—suited to
a B2B service platform targeting enterprise clients and partners. Deep
charcoal canvas surfaces (#1B1B1B) anchor layouts, while light neutrals
(#F5F5F5) provide breathing room for content. The visual language is
intentionally restrained, allowing messaging and imagery to command focus
without decorative distraction.
source:
url: "https://www.hobien.com.vn/partner"
pagesAnalyzed: 1
extractedAt: 2026-10-24
tokensMeasured: true
colors:
primary: "#FFFFFF"
canvas: "#1B1B1B"
surface: "#F5F5F5"
on-primary: "#1B1B1B"
ink: "#FFFFFF"
body: "#F5F5F5"
muted: "#8E8E8E"
hairline: "#D1D1D1"
accent-1: "#ED1846"
neutral-1: "#2A2A2A"
neutral-2: "#AEAEAE"
typography:
display-lg:
fontFamily: "Noto Sans"
fontSize: 48px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
display-lg-tight:
fontFamily: "Noto Sans"
fontSize: 48px
fontWeight: 600
lineHeight: 1.08
letterSpacing: 0px
display-md:
fontFamily: "Noto Sans"
fontSize: 40px
fontWeight: 600
lineHeight: 1.28
letterSpacing: 0px
display-md-tight:
fontFamily: "Noto Sans"
fontSize: 40px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
heading-md:
fontFamily: "Noto Sans"
fontSize: 32px
fontWeight: 600
lineHeight: 1.28
letterSpacing: 0px
heading-md-tight:
fontFamily: "Noto Sans"
fontSize: 32px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
heading-md-strong:
fontFamily: "Noto Sans"
fontSize: 32px
fontWeight: 700
lineHeight: 1.28
letterSpacing: 0px
heading-sm:
fontFamily: "Noto Sans"
fontSize: 28px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
body-lg:
fontFamily: "Noto Sans"
fontSize: 18px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
body-lg-tight:
fontFamily: "Noto Sans"
fontSize: 18px
fontWeight: 400
lineHeight: 1.28
letterSpacing: 0px
body-lg-strong:
fontFamily: "Noto Sans"
fontSize: 18px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0px
body-lg-2:
fontFamily: "Noto Sans"
fontSize: 18px
fontWeight: 600
lineHeight: 1.28
letterSpacing: 0px
body-lg-3:
fontFamily: "Noto Sans"
fontSize: 18px
fontWeight: 700
lineHeight: 1.4
letterSpacing: 0px
body-md:
fontFamily: "Noto Sans"
fontSize: 14px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
nav:
fontFamily: "Noto Sans"
fontSize: 16px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
button:
fontFamily: ui-sans-serif
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
caption:
fontFamily: "Noto Sans"
fontSize: 12px
fontWeight: 400
lineHeight: 1.2
letterSpacing: 0px
rounded:
none: 0px
xs: 4px
sm: 8px
full: 9999px
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 36px
band: 40px
borderWidths:
thin: 1px
elevationStrategy: color-blocking
themes:
derived: light # the other theme is the site's measured palette
light:
bg: "#FBFBFB"
surface: "#F1F1F1"
surfaceRaised: "#E9E9E9"
text: "#1D1D1D"
textMuted: "#707070"
border: "#D8D8D8"
accent: "#707070"
accentFg: "#FFFFFF"
focusRing: "#8F8F8F"
elevation: shadow
dark:
bg: "#1B1B1B"
surface: "#F5F5F5"
surfaceRaised: "#F6F6F6"
text: "#FFFFFF"
textMuted: "#F5F5F5"
border: "#D1D1D1"
accent: "#FFFFFF"
accentFg: "#0B0B0C"
focusRing: "#FFFFFF"
elevation: "border+surface"
contrastFailures:
- "dark: text on surface = 1.09:1 (needs 4.5:1)"
gradients:
- context: section
kind: linear
value: "linear-gradient(rgb(27, 27, 27) 0%, rgba(0, 0, 0, 0) 35.65%)"
- context: section
kind: linear
value: "linear-gradient(in oklab, rgb(20, 21, 28) 0%, rgb(37, 40, 54) 100%)"
components:
button-filled:
typography: "{typography.body-lg-3}"
textColor: "{colors.ink}"
height: 57.1875px
padding: "16px 32px 16px 32px"
rounded: "{rounded.xs}"
backgroundColor: "{colors.accent-1}"
button-filled-sm:
typography: "{typography.body-lg-3}"
textColor: "{colors.ink}"
height: 49.1875px
padding: "12px 32px 12px 32px"
rounded: "{rounded.sm}"
backgroundColor: "{colors.accent-1}"
button-text:
typography: "{typography.button}"
textColor: "lab(7.78673 1.82345 -15.0537)"
height: 36px
padding: "8px 12px 8px 12px"
rounded: "{rounded.sm}"
button-icon:
textColor: "{colors.on-primary}"
border: "1px solid {colors.hairline}"
height: 48px
fontSize: 16px
fontFamily: "Noto Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "3.35544e+07px"
button-icon-2:
textColor: "{colors.on-primary}"
border: "1px solid {colors.hairline}"
height: 48px
fontSize: 16px
fontFamily: "Noto Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "3.35544e+07px"
backgroundColor: "{colors.primary}"
card-featured:
textColor: "{colors.on-primary}"
fontSize: 16px
fontFamily: "Noto Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xs}"
backgroundColor: "{colors.surface}"
card:
textColor: "{colors.on-primary}"
padding: "40px 32px 40px 32px"
fontSize: 16px
fontFamily: "Noto Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xs}"
backgroundColor: "rgb(22, 22, 22)"
card-sm:
textColor: "{colors.on-primary}"
fontSize: 16px
fontFamily: "Noto Sans"
fontWeight: 400
lineHeight: 1.5
rounded: "{rounded.xs}"
navigation:
typography: "{typography.button}"
textColor: "lab(7.78673 1.82345 -15.0537)"
height: 48px
footer:
typography: "{typography.button}"
textColor: "lab(7.78673 1.82345 -15.0537)"
padding: "64px 70px 64px 70px"
backgroundColor: "{colors.surface}"
link:
typography: "{typography.button}"
textColor: "lab(7.78673 1.82345 -15.0537)"
padding: "12px 0px 12px 0px"
rounded: "{rounded.xs}"
link-sm:
typography: "{typography.nav}"
textColor: "{colors.neutral-2}"
states:
other-hover:
target: other
state: hover
opacity: 0.9
other-active:
target: other
state: active
opacity: 0.8
other-disabled:
target: other
state: disabled
opacity: 0.5
breakpoints:
- width: 375
containerWidth: 1920
gridColumns: 0
navLinksVisible: 0
menuToggleVisible: true
headingPx: 28
bodyPx: 16
sectionPaddingX: 0
- width: 768
containerWidth: 1920
gridColumns: 0
navLinksVisible: 0
menuToggleVisible: true
headingPx: 28
bodyPx: 16
sectionPaddingX: 0
- width: 1024
containerWidth: 1920
gridColumns: 2
navLinksVisible: 0
menuToggleVisible: true
headingPx: 28
bodyPx: 16
sectionPaddingX: 0
- width: 1280
containerWidth: 1920
gridColumns: 3
navLinksVisible: 2
menuToggleVisible: true
headingPx: 48
bodyPx: 16
sectionPaddingX: 70
- width: 1440
containerWidth: 1920
gridColumns: 3
navLinksVisible: 2
menuToggleVisible: true
headingPx: 48
bodyPx: 16
sectionPaddingX: 70
coverage:
statesFound: 7
gradientsFound: 2
rolesUnassigned: 3
archetypesUnnamed: 0
archetypesDetected: 0
responsiveMeasured: true
stylesheetsBlocked: false
semanticRampDeclared: false
Hobien embodies a contemporary, professional aesthetic grounded in dark minimalism and strategic color accents. The design system prioritizes clean typography, generous whitespace, and purposeful use of a vibrant brand red to guide user action. The overall mood is sophisticated and trustworthy—suited to a B2B service platform targeting enterprise clients and partners. Deep charcoal canvas surfaces ({colors.canvas} — #1B1B1B) anchor layouts, while light neutrals ({colors.surface} — #F5F5F5) provide breathing room for content. The visual language is intentionally restrained, allowing messaging and imagery to command focus without decorative distraction.
Key Characteristics
{colors.accent-1} — #ED1846) as the primary call-to-action signal{colors.primary} — #FFFFFF): Heading text, primary CTA labels, active states, and brand accent on dark backgrounds. Serves as the dominant ink color for readability against canvas.{colors.accent-1} — #ED1846): Primary call-to-action button fills; decorative accents; brand-centric UI signals.{colors.canvas} — #1B1B1B): Default page background; label text overlaid on brand-colored surfaces; primary interactive element background.{colors.surface} — #F5F5F5): Card and panel backgrounds; body copy container; light surface for dark-mode contrast.{colors.muted} — #8E8E8E): Captions, secondary text, and de-emphasized copy.{colors.neutral-2} — #AEAEAE): Decorative text elements; no measured semantic role.{colors.hairline} — #D1D1D1): 1px borders, dividers, and icon button strokes.{colors.neutral-1} — #2A2A2A): Decorative surface; no measured semantic role.| Role | Font | Size | Weight | Line Height | Letter Spacing | Notes |
|---|---|---|---|---|---|---|
| Display Large | Noto Sans | 48px | 600 | 1.08–1.2 | 0px | Hero headlines; use {typography.display-lg-tight} (1.08 LH) for constrained space |
| Display Medium | Noto Sans | 40px | 600 | 1.2–1.28 | 0px | Section titles; {typography.display-md-tight} (1.2 LH) tighter option |
| Heading Large | Noto Sans | 32px | 600–700 | 1.2–1.28 | 0px | Subsection headers; use {typography.heading-md-strong} (700 weight) for emphasis |
| Heading Small | Noto Sans | 28px | 600 | 1.2 | 0px | Card titles, tertiary headers |
| Body Large | Noto Sans | 18px | 400–700 | 1.28–1.4 | 0px | Paragraph text, featured content; {typography.body-lg-3} (700 weight) for strong accent |
| Body Medium | Noto Sans | 14px | 400 | 1.4 | 0px | Body links, secondary copy |
| Navigation | ui-sans-serif | 16px | 400 | 1.4 | 0px | Primary nav links, footer links |
| Button | ui-sans-serif | 16px | 400 | 1.5 | 0px | Interactive button text |
| Caption | Noto Sans | 12px | 400 | 1.2 | 0px | Metadata, figure captions |
Primary Filled (Large)
{colors.accent-1} (#ED1846){colors.primary} (#FFFFFF){spacing.md} 32px (vertical {spacing.md} 16px){rounded.xs} (4px)Primary Filled (Small)
{colors.accent-1} (#ED1846){colors.primary} (#FFFFFF){rounded.sm} (8px)Text / Ghost
{colors.canvas} (#1B1B1B){spacing.xs} 12px (vertical {spacing.xs} 8px){rounded.sm} (8px)Icon Button
{colors.primary} (#FFFFFF) for filled variant{colors.canvas} (#1B1B1B){colors.hairline} (#D1D1D1) 1px solid{rounded.full} (9999px / pill)Featured Card
{colors.surface} (#F5F5F5){colors.canvas} (#1B1B1B){rounded.xs} (4px)Default Card (Dark)
#161616{colors.canvas} (#1B1B1B){spacing.band} 40px (32px horizontal){rounded.xs} (4px)Default Card (Light, Compact)
{colors.canvas} (#1B1B1B){rounded.xs} (4px)No form input styles were extracted from the measured page. Refer to "Known Gaps" for limitation.
Nav Link (Default)
{colors.canvas} (#1B1B1B)Footer
{colors.surface} (#F5F5F5){colors.canvas} (#1B1B1B){spacing.band} 70px (full-width footer)Default Link
{colors.canvas} (#1B1B1B){rounded.xs} (4px)Secondary Link (Muted)
{colors.neutral-2} (#AEAEAE)Base unit: {spacing.xs} = 8px. All spacing scales in multiples of 4px for fine-grain control.
{spacing.xxs} = 4px (micro-spacing: icon gaps, tight line spacing){spacing.xs} = 8px (compact padding for small components){spacing.sm} = 12px (button inner padding, form spacing){spacing.md} = 16px (standard component padding, nav gaps){spacing.lg} = 20px (section spacer, card margins){spacing.xl} = 24px (generous padding, container gutters){spacing.xxl} = 28px (large feature spacing){spacing.xxxl} = 32px (extra-large padding, card interiors){spacing.section} = 36px (section divider, vertical rhythm){spacing.band} = 40px (hero section padding, full-width margin)Context: Buttons use {spacing.md} to {spacing.xxxl} for padding; cards reserve {spacing.band} (40px) for breathing room. Sections are vertically separated by {spacing.section} (36px) or {spacing.band} (40px).
{spacing.band} 70px on desktop (1280px+)The design system prioritizes generous whitespace to avoid cognitive overload. Dark canvas backgrounds receive light surface cards or images with substantial padding ({spacing.band} 40px minimum). Between sections, vertical rhythm is maintained through {spacing.section} (36px) or {spacing.band} (40px) gaps. Text blocks are never edge-to-edge; horizontal padding is at minimum {spacing.md} (16px) on compact layouts and {spacing.band} (70px) on desktop, ensuring content never appears cramped.
{rounded.none} = 0px – images, full-bleed sections, sharp footer edges{rounded.xs} = 4px – cards, buttons (large filled), moderate softness{rounded.sm} = 8px – buttons (small), input-like elements, softer feel{rounded.full} = 9999px – icon buttons, pill-shaped affordances, maximum softnessCards and primary buttons default to {rounded.xs} (4px), providing subtle softness without appearing overly rounded. Icon buttons and toggle-like elements use {rounded.full} (pill) for clear affordance.
{colors.hairline})The design system employs color-blocking as its depth strategy rather than layered shadows. Depth is conveyed through surface-color contrast: dark canvas ({colors.canvas} #1B1B1B) recedes; light surfaces ({colors.surface} #F5F5F5) and cards advance. No box-shadow is applied to components; instead, background color shifts and gradient overlays on hero sections create visual separation.
Elevation Philosophy: Flat, modern aesthetic prioritizing color and typography over shadow depth. Dark backgrounds with light accents naturally create perceived elevation without shadow. Hero sections employ linear gradients (linear-gradient(rgb(27, 27, 27) 0%, rgba(0, 0, 0, 0) 35.65%) and linear-gradient(in oklab, rgb(20, 21, 28) 0%, rgb(37, 40, 54) 100%)) to add layered depth and visual interest without relying on blur or shadow.
| Level | Treatment | Use |
|---|---|---|
| Base (Flat) | No shadow; canvas background (#1B1B1B) | Body sections, default state |
| Lifted (Card) | Light surface background (#F5F5F5) or dark card (#161616); no shadow | Featured content, statistics cards, data containers |
| Overlay (Hero) | Linear gradient with oklab color space; fades to transparent | Hero section backgrounds, image overlays |
The system defines opacity modulation for interactive and disabled states:
{colors.accent-1} #ED1846) for all primary CTAs, ensuring they command attention on dark backgrounds{rounded.full} (pill) only to icon buttons and toggle-like affordances for clear circular intent{spacing.xs}, {spacing.md}, {spacing.band}) to maintain vertical rhythm across the page{rounded.full} on standard buttons or cards; reserve for icon buttons{spacing.md} (16px) on interactive elements or card interiors| Breakpoint | Viewport Width | Content Column | Grid Columns | Nav Links Visible | Menu Toggle | Largest Heading | Body Font | Section Padding-X |
|---|---|---|---|---|---|---|---|---|
| Mobile | 375px | 1920px | N/A | 0 | Yes | 28px ({typography.heading-sm}) | 16px ({typography.nav}) | 0px |
| Tablet | 768px | 1920px | N/A | 0 | Yes | 28px ({typography.heading-sm}) | 16px ({typography.nav}) | 0px |
| Desktop (Small) | 1024px | 1920px | 2 | 0 | Yes | 28px ({typography.heading-sm}) | 16px ({typography.nav}) | 0px |
| Desktop (Medium) | 1280px | 1920px | 3 | 2 | Yes | 48px ({typography.display-lg-tight}) | 16px ({typography.nav}) | 70px |
| Desktop (Large) | 1440px | 1920px | 3 | 2 | Yes | 48px ({typography.display-lg-tight}) | 16px ({typography.nav}) | 70px |
Breakpoint collapse: Navigation switches from hamburger menu (no visible links) to a 2-link visible state at 1280px. Heading size jumps from 28px to 48px; section padding-x increases from 0px to 70px at the same threshold.
{spacing.xs} (8px) minimum gap between adjacent interactive elements to prevent mis-taps{colors.accent-1} — #ED1846) – all primary buttons, action signals{colors.canvas} — #1B1B1B) – page background, dark sections{colors.surface} — #F5F5F5) – featured cards, light sections{colors.primary} — #FFFFFF) – headings on dark backgrounds{colors.muted} — #8E8E8E) – captions, de-emphasized copy{colors.hairline} — #D1D1D1) – 1px strokes, icon button borders{colors.accent-1} (#ED1846) fill with {colors.primary} text. Secondary buttons are ghost/text-only with transparent background and {colors.canvas} text.{colors.surface} (#F5F5F5); default cards use dark (#161616) or transparent. Padding inside cards is always {spacing.band} (40px) or above.{spacing.band} 70px desktop (1280px+). This prevents cramping and centers wide layouts.{rounded.full} (9999px) with 1px {colors.hairline} border. Standard buttons use {rounded.xs} (4px).linear-gradient(rgb(27, 27, 27) 0%, rgba(0, 0, 0, 0) 35.65%)) for depth; no box-shadow elsewhere.{spacing.md} (16px) as default padding; {spacing.band} (40px) for sections; scale up to {spacing.xxxl} (32px) for card interiors on desktop.{colors.neutral-1} #2A2A2A, {colors.neutral-2} #AEAEAE, and one additional) have no measured semantic role and are described as decorative only; their intended use remains unconfirmed.tokens:
colors:
primary:
value: "#FFFFFF"
description: "Primary / Brand / Ink"
role: "Primary CTA, brand accent, headings, primary text on dark backgrounds"
accent-1:
value: "#ED1846"
description: "Accent / Brand Red"
role: "Primary action button fills, decorative accents"
canvas:
value: "#1B1B1B"
description: "Canvas / On Primary"
role: "Default page background, dark sections, label text on brand surfaces"
surface:
value: "#F5F5F5"
description: "Surface / Body"
role: "Card and panel backgrounds, light sections, body copy container"
muted:
value: "#8E8E8E"
description: "Muted"
role: "Captions, secondary text, de-emphasized copy"
hairline:
value: "#D1D1D1"
description: "Hairline"
role: "1px borders, dividers, icon button strokes"
neutral-1:
value: "#2A2A2A"
description: "Neutral (decorative)"
role: "Unassigned; decorative surface"
neutral-2:
value: "#AEAEAE"
description: "Neutral (decorative)"
role: "Unassigned; decorative text"
typography:
display-lg:
fontSize: 48px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Hero headline"
display-lg-tight:
fontSize: 48px
fontWeight: 600
lineHeight: 1.08
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Compact hero headline"
display-md:
fontSize: 40px
fontWeight: 600
lineHeight: 1.28
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Section title"
display-md-tight:
fontSize: 40px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Compact section title"
heading-md:
fontSize: 32px
fontWeight: 600
lineHeight: 1.28
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Subsection header"
heading-md-strong:
fontSize: 32px
fontWeight: 700
lineHeight: 1.28
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Emphasized subsection header"
heading-md-tight:
fontSize: 32px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Compact subsection header"
heading-sm:
fontSize: 28px
fontWeight: 600
lineHeight: 1.2
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Card title, tertiary header"
body-lg:
fontSize: 18px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Paragraph text"
body-lg-tight:
fontSize: 18px
fontWeight: 400
lineHeight: 1.28
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Tight paragraph text"
body-lg-2:
fontSize: 18px
fontWeight: 600
lineHeight: 1.28
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Featured paragraph (medium weight)"
body-lg-3:
fontSize: 18px
fontWeight: 700
lineHeight: 1.4
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Strong paragraph accent"
body-lg-strong:
fontSize: 18px
fontWeight: 500
lineHeight: 1.4
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Semibold paragraph"
body-md:
fontSize: 14px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Body link, secondary copy"
nav:
fontSize: 16px
fontWeight: 400
lineHeight: 1.4
letterSpacing: 0px
fontFamily: "ui-sans-serif"
description: "Navigation link"
button:
fontSize: 16px
fontWeight: 400
lineHeight: 1.5
letterSpacing: 0px
fontFamily: "ui-sans-serif"
description: "Button text"
caption:
fontSize: 12px
fontWeight: 400
lineHeight: 1.2
letterSpacing: 0px
fontFamily: "Noto Sans"
description: "Metadata, figure caption"
spacing:
xxs: 4px
xs: 8px
sm: 12px
md: 16px
lg: 20px
xl: 24px
xxl: 28px
xxxl: 32px
section: 36px
band: 40px
rounded:
none: 0px
xs: 4px
sm: 8px
full: 9999px
borders:
thin: 1px
opacity:
level-80: 0.80
level-75: 0.75
level-60: 0.60
level-35: 0.35
zIndex:
dropdown: 10
modal: 50
gradients:
hero-overlay-1: "linear-gradient(rgb(27, 27, 27) 0%, rgba(0, 0, 0, 0) 35.65%)"
hero-overlay-2: "linear-gradient(in oklab, rgb(20, 21, 28) 0%, rgb(37, 40, 54) 100%)"