BlockESG
BlockESG is a blockchain-powered ESG platform enabling transparent donations, social finance, and impact investing. The design system combines tech-forward minimalism with deep, immersive dark aesthetics—a 'Digital Transparency' movement that transforms complex social impact data into crystalline, navigable interfaces.
Colors
Typography
- display
- fontFamily: tassista · fontSize: 72px · fontWeight: 500 · lineHeight: 80px · letterSpacing: -0.03em
- headline-lg
- fontFamily: tassista · fontSize: 48px · fontWeight: 500 · lineHeight: 56px · letterSpacing: -0.02em
- headline-md
- fontFamily: tassista · fontSize: 36px · fontWeight: 500 · lineHeight: 44px · letterSpacing: -0.015em
- title-lg
- fontFamily: Pretendard · fontSize: 24px · fontWeight: 600 · lineHeight: 32px · letterSpacing: -0.01em
- body-lg
- fontFamily: Pretendard · fontSize: 18px · fontWeight: 400 · lineHeight: 28px · letterSpacing: 0em
- body-md
- fontFamily: Pretendard · fontSize: 16px · fontWeight: 400 · lineHeight: 24px · letterSpacing: 0em
- label-md
- fontFamily: Pretendard · fontSize: 14px · fontWeight: 600 · lineHeight: 20px · letterSpacing: 0.01em
- label-sm
- fontFamily: Pretendard · fontSize: 12px · fontWeight: 500 · lineHeight: 16px · letterSpacing: 0.02em
Design guidance
Overview
BlockESG represents a 'Digital Transparency' aesthetic—a design movement that merges blockchain's crystalline data structures with immersive dark interfaces. The platform serves impact investors, donors, and social enterprises seeking verifiable ESG outcomes. The UI evokes precision and trust through layered depth, glowing accents (cyan and emerald), and a tech-forward minimalism that never feels cold. Every interaction reveals data; every surface suggests immutable ledgers.
The brand voice is authoritative yet approachable: technical without jargon, optimistic without hype. Tone: measured, evidence-driven, action-oriented. Example: 'Your donation reaches verified recipients in 47 seconds—tracked on-chain, always.' The vocabulary emphasizes transparency, impact, and trust; animations are purposeful, never decorative.
Colors
BlockESG's color system anchors on a deep navy-black foundation (#0a0e14 surface, #050709 surface-dim) that evokes both the digital realm and the night sky—a canvas for data visualization. The primary accent is Emerald Green (#13ae75), used exclusively for CTAs, active states, and trust indicators. This color appears on primary buttons, focus rings (3px rgba(19, 174, 117, 0.12)), and hover states. Secondary accent Cyan (#00bcd4) supports data highlights and secondary interactions. Error states use a muted red (#ff6b6b) with container background #8b2e2e.
Surface stack: surface-container (#13181f) for cards and panels; surface-container-high (#1a202b) for elevated hover states; surface-container-highest (#242d3a) for modals. On-surface text is light (#e8eef5) for readability over dark backg
Typography
The type system pairs tassista (a geometric, tech-forward display font at 500 weight) for headlines and CTAs with Pretendard (a humanist sans-serif at 400–700 weights) for body and UI text. Display (72px, -0.03em letter-spacing) anchors hero sections with commanding presence. Headline-lg (48px, -0.02em) and headline-md (36px, -0.015em) establish section hierarchy. Body-lg (18px, 28px line-height) and body-md (16px, 24px line-height) ensure legibility over dark backgrounds. Label-md (14px, 600 weight, 0.01em tracking) and label-sm (12px, 500 weight, 0.02em tracking) are used for UI labels and badges. Apply text-shadow: 0 2px 4px rgba(0, 0, 0, 0.3) on small labels over animated or busy backgrounds to maintain contrast during video playback.
Layout
BlockESG uses a fluid 12-column grid with a max-width of 1280px (1416px on ultra-wide displays). The page rhythm relies on lg spacing (40px) for section separation and md spacing (24px) for component padding. Container widths scale responsively: 1160px on desktop, 980px on tablet, 800px on mobile. The hero section spans full viewport with a video background (main.mp4) overlaid with white text (display weight) and emerald accents. Content sections use gutter spacing (24px) for breathing room. Sticky header (100px height, fixed positioning, z-index: 9999) transitions from transparent (dark background) to white background on scroll (background-color: #fff, transition: background 0.3s). Footer uses 90px top padding with 105px bottom padding.
Elevation & Depth
Depth is conveyed through layered shadows and glass effects rather than flat color shifts. Level 1 (Base): dark video background with subtle grain texture. Level 2 (Standard Card): box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15), background: {colors.surface-container}, border-radius: 1rem. Level 3 (Elevated/Modals): box-shadow: 0 8px 24px rgba(0, 0, 0, 0.25), background: {colors.surface-container-high}, with optional backdrop-filter: blur(12px). Glass surfaces (used for data overlays) combine rgba(19, 174, 117, 0.08) background, backdrop-filter: blur(12px), and 1px border at rgba(19, 174, 117, 0.15)
Shapes
The design philosophy is 'Architectural Precision'—sharp, intentional corners that suggest digital structures and blockchain blocks. Buttons and inputs use rounded: lg (1rem / 16px) for primary CTAs and rounded: DEFAULT (0.5rem / 8px) for secondary inputs. Cards and modals use rounded: xl (1.5rem / 24px) to soften the tech aesthetic slightly. Badge and pill components use rounded: full (9999px) for maximum softness, creating visual contrast with rigid button shapes. Border-radius: 10px appears frequently in legacy components (custom selects, dropdowns) and is maintained for consistency. The re
Components
Action Elements Primary buttons (button-primary) use {colors.primary} (#13ae75) background, white text, 48px height, 12px 24px padding, and rounded: lg. Hover state brightens to #0f8f63 with box-shadow: 0 6px 16px rgba(19, 174, 117, 0.25) and 200ms transition. Active state darkens to #0a594b with reduced shadow (0 2px 4px rgba(0, 0, 0, 0.2)). Secondary buttons are transparent with 1px emerald border and text color {colors.primary}; hover adds rgba(19, 174, 117, 0.08) background. All buttons use label-md typography (14px, 600 weight).
Containers & Surfaces Cards (card component) use {colors.surface-container} background, rounded: lg, padding: 24px, and box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15). Hover state (card-hover) transitions background to surface-container-high and shadow to
Do's and Don'ts
**Do**
- Do use {colors.primary} (#13ae75) exclusively for CTAs, focus states, and trust indicators—never for decorative elements or backgrounds.
- Do apply box-shadow: 0 3px 8px rgba(0, 0, 0, 0.15) to cards and 0 8px 24px rgba(0, 0, 0, 0.25) to elevated surfaces to maintain depth hierarchy.
- Do pair tassista (display/headlines) with Pretendard (body/UI) to balance tech-forward precision with human readability.
- Do use glass surfaces (backdrop-filter: blur(12px), rgba(19, 174, 117, 0.08)) over video backgrounds to suggest transparency and layered data.
- Do maintain 40px lg spacing between major sections and 24px md spacing within component groups for consistent rhythm.
**Don't**
- Don't use primary color (#13ae75) for body text, backgrounds, or non-interactive elements—reserve it for high-priority actions.
- Don't apply shadows smaller than 0 3px 8px rgba(0, 0, 0, 0.15) on dark surfaces; insufficient contrast will flatten the interface.
- Don't mix rounded: full (badges) with rounded: lg (buttons) in the same interaction group without clear semantic distinction.
- Don't use system fonts or sans-serif fallbacks for display text; always load tassista via Typekit to maintain brand precision.
- Don't animate transitions faster than 200ms or slower than 500ms for hover/focus states; maintain snappy, responsive feel without jarring motion.
Edit, then copy or download.