Skip to content

@vibe-labs/design-components-core

Shared component primitives (field wrapper, close button) for the Vibe Design System.

Usage

css
@import "@vibe-labs/design-components-core";
ts
import { CloseBtnSizes } from "@vibe-labs/design-components-core/types";
import type { FieldStyleProps, CloseBtnStyleProps } from "@vibe-labs/design-components-core/types";

Contents

Tokens (core.css)

CSS custom properties defined in @layer vibe.tokens:

Field Wrapper

TokenDefaultDescription
--field-gap--space-1Gap between label, control, and help/error
--field-label-font-size--text-smLabel font size
--field-label-font-weight--font-semiboldLabel font weight
--field-label-color--text-primaryLabel color
--field-help-font-size--text-xsHelp text font size
--field-help-color--text-mutedHelp text color
--field-error-font-size--text-xsError/success message font size
--field-required-color--color-dangerRequired indicator color

Close Button

TokenDefaultDescription
--close-btn-color--text-mutedDefault icon color
--close-btn-hover-color--text-primaryHover icon color
--close-btn-hover-bg--surface-hover-overlayHover background
--close-btn-radius--radius-smBorder radius
--close-btn-size-sm1.25remSmall size
--close-btn-size-md1.75remMedium size (default)
--close-btn-size-lg2remLarge size

Generated Styles (core.g.css)

Component classes generated into @layer vibe.components.

Field Wrapper

  • field — vertical flex column (label → control → help/error)
  • field-label — styled label text
  • field-required — danger-colored required indicator
  • field-help — muted help text below control
  • field-error — error message
  • field-success — success message
  • horizontal modifier — switches to row layout with fixed-width label (8rem min)

Close Button

  • close-btn — inline-flex centered button with hover/focus states
  • Sizes: sm · md · lg (default: md)
  • Focus-visible ring via box-shadow

TypeScript Types (types/)

ts
CloseBtnSizes // ["sm", "md", "lg"]
type CloseBtnSize

interface FieldStyleProps { horizontal?: boolean }
interface FieldLabelStyleProps {}
interface FieldRequiredStyleProps {}
interface FieldHelpStyleProps {}
interface FieldErrorStyleProps {}
interface FieldSuccessStyleProps {}
interface CloseBtnStyleProps { size?: CloseBtnSize }

Dist Structure

FileDescription
index.cssBarrel — imports tokens + generated styles
core.cssToken definitions
core.g.cssGenerated component styles
index.js / index.d.tsTypeScript types + runtime constants

Dependencies

Requires tokens from @vibe-labs/design (typography, spacing, colors, surfaces, transitions, elevation).

Build

bash
npm run build