#CSS Variables & Tokens
Complete reference for all CSS variables and class names in the HyperKit component library.
#Table of Contents
#Design Tokens
#CSS Variables
| Variable |
Default |
Description |
--sk-height-xs |
24px |
Extra small component height |
--sk-height-sm |
28px |
Small component height |
--sk-height-md |
32px |
Medium component height |
--sk-height-lg |
40px |
Large component height |
--sk-height-xl |
48px |
Extra large component height |
--sk-duration-instant |
50ms |
Instant transition duration |
--sk-duration-fast |
150ms |
Fast transition duration |
--sk-duration-normal |
200ms |
Normal transition duration |
--sk-duration-slow |
300ms |
Slow transition duration |
--sk-duration-slower |
500ms |
Slower transition duration |
--sk-duration-spin |
1s |
Spin animation duration |
--sk-duration-pulse |
2s |
Pulse animation duration |
--sk-duration-bounce |
1s |
Bounce animation duration |
--sk-ease-default |
cubic-bezier(0.4, 0, 0.2, 1) |
Default easing function |
--sk-ease-in |
cubic-bezier(0.4, 0, 1, 1) |
Ease-in function |
--sk-ease-out |
cubic-bezier(0, 0, 0.2, 1) |
Ease-out function |
--sk-ease-in-out |
cubic-bezier(0.4, 0, 0.6, 1) |
Ease-in-out function |
--sk-ease-bounce |
cubic-bezier(0.34, 1.56, 0.64, 1) |
Bounce easing function |
--sk-leading-none |
1 |
No line height |
--sk-leading-tight |
1.25 |
Tight line height |
--sk-leading-snug |
1.375 |
Snug line height |
--sk-leading-normal |
1.5 |
Normal line height |
--sk-leading-relaxed |
1.75 |
Relaxed line height |
--sk-leading-loose |
2 |
Loose line height |
--sk-border-width |
1px |
Default border width |
--sk-border-width-2 |
2px |
Medium border width |
--sk-border-width-4 |
4px |
Large border width |
--sk-icon-xs |
12px |
Extra small icon size |
--sk-icon-sm |
14px |
Small icon size |
--sk-icon-md |
16px |
Medium icon size |
--sk-icon-lg |
20px |
Large icon size |
--sk-icon-xl |
24px |
Extra large icon size |
#Keyframe Animations
sk-spin - 360° rotation animation
sk-fade-in - Fade in with slight upward movement
sk-ping - Scale and fade out ping effect
sk-pulse - Opacity pulsing animation
#Global Styles
#CSS Variables
| Variable |
Default |
Description |
--sk-focus-width |
2px |
Focus outline width |
--sk-focus-style |
solid |
Focus outline style |
--sk-focus-color |
var(--sk-accent) |
Focus outline color |
--sk-focus-offset |
-1px |
Focus outline offset |
--sk-scroll-width |
10px |
Scrollbar width |
--sk-scroll-track |
transparent |
Scrollbar track color |
--sk-scroll-thumb |
var(--sk-border) |
Scrollbar thumb color |
--sk-scroll-thumb-hover |
var(--sk-text-muted) |
Scrollbar thumb hover color |
--sk-scroll-thumb-radius |
5px |
Scrollbar thumb border radius |
--sk-prose-blockquote-border-w |
3px |
Blockquote border width |
#Utility Classes
| Class |
Description |
.sk-sr-only |
Screen reader only (visually hidden) |
.sk-truncate |
Text truncation with ellipsis |
.sk-prose |
Prose/typography styles for rich content |
#Global Keyframe Animations
sk-spin - 360° rotation
sk-pulse - Opacity pulse
sk-bounce - Vertical bounce
sk-fade-in - Fade in from transparent
sk-zoom-in - Scale up from 0.95 to 1
sk-slide-up - Slide up from 10px below
sk-slide-down - Slide down from 10px above
sk-float - Floating animation with translation and scale
sk-fade-in-up - Fade in while sliding up 30px
sk-scale-in - Scale in from 0.9
sk-line-grow - Width expansion to 100%
#Primitives
#Accordion
File: src/primitives/Accordion/Accordion.css
#CSS Variables
| Variable |
Default |
Description |
--sk-accordion-border |
var(--sk-border) |
Item border color |
--sk-accordion-bg |
transparent |
Accordion background |
--sk-accordion-trigger-padding |
var(--sk-space-md) |
Trigger padding |
--sk-accordion-content-padding |
var(--sk-space-md) |
Content padding |
--sk-accordion-trigger-hover-bg |
var(--sk-bg-secondary) |
Trigger hover background |
#Class Names
| Class |
Description |
.sk-accordion |
Root accordion container |
.sk-accordion__item |
Individual accordion item |
.sk-accordion__header |
Accordion item header |
.sk-accordion__trigger |
Clickable trigger button |
.sk-accordion__trigger[data-expanded] |
Trigger in expanded state |
.sk-accordion__trigger[data-disabled] |
Disabled trigger |
.sk-accordion__trigger-text |
Trigger text content |
.sk-accordion__chevron |
Chevron icon (rotates on expand) |
.sk-accordion__content |
Collapsible content wrapper |
.sk-accordion__content[data-expanded] |
Content in expanded state |
.sk-accordion__content[data-closed] |
Content in closed state |
.sk-accordion__content-inner |
Inner content padding wrapper |
#Keyframe Animations
sk-accordion-expand - Height expansion animation
sk-accordion-collapse - Height collapse animation
#Customization Example
.sk-accordion {
--sk-accordion-border: rgba(255, 255, 255, 0.1);
--sk-accordion-trigger-padding: 1rem;
--sk-accordion-trigger-hover-bg: rgba(255, 255, 255, 0.05);
}
#Badge
File: src/primitives/Badge/Badge.css
#CSS Variables
| Variable |
Default |
Description |
--sk-badge-radius |
9999px |
Badge border radius (pill shape) |
--sk-badge-font-size |
var(--sk-font-size-sm) |
Badge font size |
--sk-badge-font-weight |
500 |
Badge font weight |
#Class Names
| Class |
Description |
.sk-badge |
Root badge element |
.sk-badge--label |
Label type badge (with text) |
.sk-badge--count |
Count type badge (numeric) |
.sk-badge--dot |
Dot type badge (small indicator) |
.sk-badge--default |
Default gray variant |
.sk-badge--success |
Success green variant |
.sk-badge--warning |
Warning yellow variant |
.sk-badge--danger |
Danger red variant |
.sk-badge--info |
Info blue variant |
#Customization Example
.sk-badge {
--sk-badge-radius: 6px; /* Rounded instead of pill */
--sk-badge-font-size: 11px;
--sk-badge-font-weight: 600;
}
File: src/primitives/Button/Button.css
#CSS Variables
| Variable |
Default |
Description |
--sk-btn-radius |
var(--sk-radius-md) |
Button border radius |
--sk-btn-font-weight |
500 |
Button font weight |
--sk-btn-line-height |
1 |
Button line height |
--sk-btn-disabled-opacity |
0.5 |
Disabled button opacity |
--sk-btn-primary-bg |
var(--sk-accent) |
Primary button background |
--sk-btn-primary-color |
var(--sk-text-on-accent) |
Primary button text color |
--sk-btn-primary-hover-bg |
var(--sk-accent-hover) |
Primary button hover background |
--sk-btn-secondary-bg |
var(--sk-bg-tertiary) |
Secondary button background |
--sk-btn-secondary-color |
var(--sk-text-primary) |
Secondary button text color |
--sk-btn-secondary-hover-bg |
var(--sk-bg-secondary) |
Secondary button hover background |
--sk-btn-ghost-bg |
transparent |
Ghost button background |
--sk-btn-ghost-color |
var(--sk-text-secondary) |
Ghost button text color |
--sk-btn-ghost-hover-bg |
var(--sk-bg-tertiary) |
Ghost button hover background |
--sk-btn-danger-bg |
var(--sk-error) |
Danger button background |
--sk-btn-danger-color |
var(--sk-text-on-accent) |
Danger button text color |
--sk-btn-outline-bg |
transparent |
Outline button background |
--sk-btn-outline-color |
var(--sk-text-primary) |
Outline button text color |
--sk-btn-outline-border-color |
var(--sk-border) |
Outline button border color |
--sk-btn-outline-hover-bg |
var(--sk-bg-tertiary) |
Outline button hover background |
--sk-btn-outline-hover-border-color |
var(--sk-accent) |
Outline button hover border color |
--sk-btn-link-bg |
transparent |
Link button background |
--sk-btn-link-color |
var(--sk-accent) |
Link button text color |
--sk-btn-sm-padding-y |
var(--sk-space-xs) |
Small button vertical padding |
--sk-btn-sm-padding-x |
var(--sk-space-sm) |
Small button horizontal padding |
--sk-btn-sm-font-size |
var(--sk-font-size-base) |
Small button font size |
--sk-btn-md-padding-y |
var(--sk-space-sm) |
Medium button vertical padding |
--sk-btn-md-padding-x |
var(--sk-space-md) |
Medium button horizontal padding |
--sk-btn-md-font-size |
var(--sk-font-size-base) |
Medium button font size |
--sk-btn-lg-padding-y |
var(--sk-space-sm) |
Large button vertical padding |
--sk-btn-lg-padding-x |
var(--sk-space-lg) |
Large button horizontal padding |
--sk-btn-lg-font-size |
var(--sk-font-size-lg) |
Large button font size |
#Class Names
| Class |
Description |
.sk-btn |
Root button element |
.sk-btn--primary |
Primary variant (accent color) |
.sk-btn--secondary |
Secondary variant (gray) |
.sk-btn--ghost |
Ghost variant (transparent) |
.sk-btn--danger |
Danger variant (red) |
.sk-btn--outline |
Outline variant (bordered) |
.sk-btn--link |
Link variant (text-only) |
.sk-btn--sm |
Small size |
.sk-btn--md |
Medium size |
.sk-btn--lg |
Large size |
.sk-btn__spinner |
Loading spinner element |
.sk-btn__spinner-track |
Spinner track (background circle) |
.sk-btn__spinner-head |
Spinner head (animated part) |
#Customization Example
.sk-btn {
--sk-btn-radius: 12px;
--sk-btn-font-weight: 600;
--sk-btn-primary-bg: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
}
#Card
File: src/primitives/Card/Card.css
#CSS Variables
| Variable |
Default |
Description |
--sk-card-radius |
var(--sk-radius-lg) |
Card border radius |
--sk-card-bg |
var(--sk-bg-secondary) |
Default variant background |
--sk-card-border-color |
var(--sk-border-subtle) |
Default variant border color |
--sk-card-bg-outlined |
transparent |
Outlined variant background |
--sk-card-border-color-outlined |
var(--sk-border) |
Outlined variant border color |
--sk-card-bg-elevated |
var(--sk-bg-elevated) |
Elevated variant background |
--sk-card-shadow-elevated |
0 2px 8px rgb(0 0 0 / 0.1) |
Elevated variant shadow |
--sk-card-padding-none |
0 |
No padding value |
--sk-card-padding-sm |
8px |
Small padding value |
--sk-card-padding-md |
16px |
Medium padding value |
--sk-card-padding-lg |
24px |
Large padding value |
--sk-card-hover-bg |
var(--sk-bg-tertiary) |
Hover background (default) |
--sk-card-hover-border-color |
var(--sk-accent-muted) |
Hover border color (default) |
--sk-card-hover-bg-outlined |
var(--sk-bg-secondary) |
Hover background (outlined) |
--sk-card-hover-border-color-outlined |
var(--sk-accent) |
Hover border color (outlined) |
#Class Names
| Class |
Description |
.sk-card |
Root card element |
.sk-card--default |
Default filled variant |
.sk-card--outlined |
Outlined variant |
.sk-card--elevated |
Elevated variant with shadow |
.sk-card--padding-none |
No padding |
.sk-card--padding-sm |
Small padding |
.sk-card--padding-md |
Medium padding |
.sk-card--padding-lg |
Large padding |
.sk-card--hoverable |
Adds hover state |
.sk-card--clickable |
Adds click/hover state |
.sk-card__header |
Card header section |
.sk-card__title |
Card title text |
.sk-card__description |
Card description text |
.sk-card__content |
Card content area |
.sk-card__footer |
Card footer section |
#Customization Example
.sk-card {
--sk-card-radius: 16px;
--sk-card-bg: rgba(255, 255, 255, 0.05);
--sk-card-border-color: rgba(255, 255, 255, 0.1);
--sk-card-shadow-elevated: 0 4px 16px rgba(0, 0, 0, 0.2);
}
#Code Block
File: src/primitives/CodeBlock/CodeBlock.css
#CSS Variables
| Variable |
Default |
Description |
--sk-custom-code-keyword |
#c678dd |
Syntax: keyword color |
--sk-custom-code-string |
#98c379 |
Syntax: string color |
--sk-custom-code-number |
#d19a66 |
Syntax: number color |
--sk-custom-code-function |
#61afef |
Syntax: function color |
--sk-custom-code-attr |
#d19a66 |
Syntax: attribute color |
--sk-custom-code-builtin |
#e6c07b |
Syntax: built-in color |
--sk-custom-code-type |
#e6c07b |
Syntax: type color |
#Class Names
| Class |
Description |
.sk-code-block |
Root code block container |
.sk-code-block__header |
Code block header (language label) |
.sk-code-block__label |
Language label text |
.sk-code-block__body |
Main code display area |
.sk-code-block__gutter |
Line number gutter |
.sk-code-block__line-number |
Individual line number |
.sk-code-block__pre |
Pre element wrapper |
.sk-code-block__code |
Code element |
#Customization Example
.sk-code-block {
--sk-custom-code-keyword: #ff79c6;
--sk-custom-code-string: #50fa7b;
--sk-custom-code-function: #8be9fd;
--sk-custom-code-number: #bd93f9;
}
#Collapsible
File: src/primitives/Collapsible/Collapsible.css
#CSS Variables
| Variable |
Default |
Description |
--sk-collapsible-trigger-radius |
var(--sk-radius-md) |
Trigger border radius |
--sk-collapsible-trigger-padding |
var(--sk-space-sm) |
Trigger padding |
--sk-collapsible-trigger-font-size |
var(--sk-font-size-base) |
Trigger font size |
--sk-collapsible-trigger-font-weight |
500 |
Trigger font weight |
--sk-collapsible-disabled-opacity |
0.5 |
Disabled trigger opacity |
--sk-collapsible-chevron-size |
var(--sk-icon-md) |
Chevron icon size |
--sk-collapsible-content-padding |
var(--sk-space-sm) |
Content top padding |
#Class Names
| Class |
Description |
.sk-collapsible__trigger |
Clickable trigger button |
.sk-collapsible__chevron |
Chevron icon (rotates 180°) |
.sk-collapsible__chevron[data-expanded] |
Expanded state chevron |
.sk-collapsible__content |
Collapsible content wrapper |
.sk-collapsible__content[data-expanded] |
Content in expanded state |
.sk-collapsible__content[data-closed] |
Content in closed state |
.sk-collapsible__inner |
Inner content padding |
#Keyframe Animations
sk-collapsible-down - Expand animation
sk-collapsible-up - Collapse animation
#Customization Example
.sk-collapsible {
--sk-collapsible-trigger-radius: 8px;
--sk-collapsible-trigger-padding: 12px;
--sk-collapsible-chevron-size: 20px;
}
#Dialog
File: src/primitives/Dialog/Dialog.css
#CSS Variables
| Variable |
Default |
Description |
--sk-z-modal |
(theme value) |
Dialog z-index |
#Class Names
| Class |
Description |
.sk-dialog__overlay |
Semi-transparent backdrop overlay |
.sk-dialog__overlay[data-expanded] |
Overlay in expanded state |
.sk-dialog__overlay[data-closed] |
Overlay in closed state |
.sk-dialog__positioner |
Centers the dialog content |
.sk-dialog__content |
Main dialog content box |
.sk-dialog__content[data-expanded] |
Content in expanded state |
.sk-dialog__content[data-closed] |
Content in closed state |
.sk-dialog__header |
Dialog header section |
.sk-dialog__title |
Dialog title text |
.sk-dialog__description |
Dialog description text |
.sk-dialog__body |
Dialog body content |
.sk-dialog__close |
Close button (top-right) |
#Customization Example
.sk-dialog__content {
max-width: 600px;
border-radius: 12px;
padding: 2rem;
}
#Dropdown
File: src/primitives/Dropdown/Dropdown.css
#CSS Variables
| Variable |
Default |
Description |
--sk-z-popover |
(theme value) |
Dropdown z-index |
#Class Names
| Class |
Description |
.sk-dropdown__trigger |
Dropdown trigger button |
.sk-dropdown__content |
Dropdown menu content |
.sk-dropdown__item |
Individual menu item |
.sk-dropdown__item[data-highlighted] |
Highlighted menu item |
.sk-dropdown__item[data-disabled] |
Disabled menu item |
.sk-dropdown__item--destructive |
Destructive action item (red) |
.sk-dropdown__item-icon |
Item icon wrapper |
#Customization Example
.sk-dropdown__content {
min-width: 200px;
border-radius: 8px;
}
.sk-dropdown__item {
padding: 10px 14px;
}
#Empty State
File: src/primitives/EmptyState/EmptyState.css
#CSS Variables
| Variable |
Default |
Description |
--sk-empty-state-max-w |
400px |
Description max width |
#Class Names
| Class |
Description |
.sk-empty-state |
Root empty state container |
.sk-empty-state__icon |
Icon/illustration container |
.sk-empty-state__title |
Empty state title |
.sk-empty-state__description |
Description text |
.sk-empty-state__action |
Action button container |
#Customization Example
.sk-empty-state {
--sk-empty-state-max-w: 500px;
}
#Icon
File: src/icons/Icon.css
#Class Names
| Class |
Description |
.sk-icon |
Root icon container |
.sk-icon--xs |
Extra small (12px) |
.sk-icon--sm |
Small (14px) |
.sk-icon--md |
Medium (16px) |
.sk-icon--lg |
Large (20px) |
.sk-icon--xl |
Extra large (24px) |
.sk-icon--loading |
Spinning animation |
#Keyframe Animations
sk-icon-spin - Continuous rotation
File: src/primitives/Input/Input.css
#Class Names
| Class |
Description |
.sk-input-wrapper |
Input wrapper with label/error |
.sk-input |
Text input element |
.sk-input--error |
Input in error state |
.sk-input__error |
Error message text |
.sk-textarea |
Textarea element |
.sk-textarea--error |
Textarea in error state |
#Customization Example
.sk-input {
border-radius: 8px;
padding: 10px 12px;
}
.sk-input:focus {
box-shadow: 0 0 0 3px var(--sk-accent);
}
#Kbd
File: src/primitives/Kbd/Kbd.css
#Class Names
| Class |
Description |
.sk-kbd |
Keyboard key element |
.sk-kbd-group |
Group of keyboard keys |
.sk-kbd-separator |
Separator between keys (e.g., "+") |
#Customization Example
.sk-kbd {
min-width: 28px;
padding: 4px 8px;
border-radius: 4px;
}
#Progress Bar
File: src/primitives/ProgressBar/ProgressBar.css
#Class Names
| Class |
Description |
.sk-progress |
Root progress bar container |
.sk-progress--sm |
Small height (2px) |
.sk-progress--md |
Medium height (--sk-space-xs) |
.sk-progress--lg |
Large height (--sk-space-sm) |
.sk-progress__fill |
Progress fill indicator |
.sk-progress__fill--indeterminate |
Indeterminate animation |
#Keyframe Animations
sk-progress-indeterminate - Sliding animation
#Progress Ring
File: src/primitives/ProgressRing/ProgressRing.css
#Class Names
| Class |
Description |
.sk-progress-ring |
Root progress ring container |
.sk-progress-ring__svg |
SVG element (rotated -90°) |
.sk-progress-ring__track |
Background circle |
.sk-progress-ring__fill |
Progress arc |
.sk-progress-ring__content |
Center content slot |
#Project Card
File: src/primitives/ProjectCard/ProjectCard.css
#Class Names
| Class |
Description |
.sk-project-card |
Root project card |
.sk-project-card__icon |
Project icon/avatar |
.sk-project-card__info |
Project info section |
.sk-project-card__header |
Card header with name/pin |
.sk-project-card__name |
Project name |
.sk-project-card__pin |
Pin button |
.sk-project-card__subtitle |
Subtitle text |
.sk-project-card__description |
Description text |
File: src/primitives/ScrollArea/ScrollArea.css
#CSS Variables
| Variable |
Default |
Description |
--sk-scroll-thumb-radius |
5px |
Scrollbar thumb border radius |
#Class Names
| Class |
Description |
.sk-scroll-area |
Scrollable container with custom scrollbar |
File: src/primitives/SearchInput/SearchInput.css
#Class Names
| Class |
Description |
.sk-search-input |
Root search input container |
.sk-search-input[data-disabled] |
Disabled state |
.sk-search-input__icon |
Search icon (left) |
.sk-search-input__field |
Text input field |
.sk-search-input__clear |
Clear button (X icon) |
.sk-search-input__shortcut |
Keyboard shortcut indicator |
#Select
File: src/primitives/Select/Select.css
#CSS Variables
| Variable |
Default |
Description |
--sk-z-popover |
(theme value) |
Select dropdown z-index |
#Class Names
| Class |
Description |
.sk-select__trigger |
Select trigger button |
.sk-select__icon |
Chevron dropdown icon |
.sk-select__content |
Dropdown options list |
.sk-select__item |
Individual option item |
.sk-select__item[data-highlighted] |
Highlighted option |
.sk-select__item[data-disabled] |
Disabled option |
.sk-select__item-check |
Check icon for selected item |
#Separator
File: src/primitives/Separator/Separator.css
#CSS Variables
| Variable |
Default |
Description |
--sk-separator-size |
1px |
Separator thickness |
--sk-separator-color |
var(--sk-border) |
Separator color |
--sk-separator-margin |
var(--sk-space-md) 0 (horizontal) / 0 var(--sk-space-md) (vertical) |
Separator margin |
#Class Names
| Class |
Description |
.sk-separator |
Root separator element |
.sk-separator--horizontal |
Horizontal divider |
.sk-separator--vertical |
Vertical divider |
#Customization Example
.sk-separator {
--sk-separator-size: 2px;
--sk-separator-color: rgba(255, 255, 255, 0.2);
--sk-separator-margin: 2rem 0;
}
#Skeleton
File: src/primitives/Skeleton/Skeleton.css
#Class Names
| Class |
Description |
.sk-skeleton |
Root skeleton element |
.sk-skeleton--rect |
Rectangle shape |
.sk-skeleton--circle |
Circle shape |
.sk-skeleton-text |
Text skeleton stack |
#Keyframe Animations
sk-shimmer - Shimmer loading effect
#Slider
File: src/primitives/Slider/Slider.css
#CSS Variables
| Variable |
Default |
Description |
--sk-slider-track-bg |
var(--sk-bg-tertiary) |
Track background color |
--sk-slider-track-height |
4px |
Track height |
--sk-slider-fill-bg |
var(--sk-accent) |
Fill color |
--sk-slider-thumb-size |
18px |
Thumb size |
--sk-slider-thumb-bg |
var(--sk-accent) |
Thumb background |
--sk-slider-thumb-border-color |
white |
Thumb border color |
#Class Names
| Class |
Description |
.sk-slider |
Root slider container |
.sk-slider__header |
Label and value row |
.sk-slider__label |
Label text |
.sk-slider__value |
Current value display |
.sk-slider__track |
Slider track |
.sk-slider__track[data-disabled] |
Disabled track |
.sk-slider__fill |
Filled portion of track |
.sk-slider__thumb |
Draggable thumb |
.sk-slider__thumb[data-disabled] |
Disabled thumb |
#Customization Example
.sk-slider {
--sk-slider-track-height: 6px;
--sk-slider-thumb-size: 24px;
--sk-slider-fill-bg: linear-gradient(90deg, #667eea, #764ba2);
}
#Spinner
File: src/primitives/Spinner/Spinner.css
#CSS Variables
| Variable |
Default |
Description |
--sk-spinner-border-width |
2px |
Spinner border thickness |
--sk-spinner-track-color |
var(--sk-border) |
Track/background color |
--sk-spinner-color |
var(--sk-accent) |
Spinner head color |
--sk-duration-normal |
0.6s |
Spin animation duration |
#Class Names
| Class |
Description |
.sk-spinner |
Root spinner element |
.sk-spinner--sm |
Small (16px) |
.sk-spinner--md |
Medium (24px) |
.sk-spinner--lg |
Large (36px) |
.sk-spinner--primary |
Primary color variant |
.sk-spinner--secondary |
Secondary color variant |
.sk-spinner--muted |
Muted color variant |
.sk-spinner--on-accent |
On-accent color variant |
.sk-spinner__label |
Screen-reader only label |
#Customization Example
.sk-spinner {
--sk-spinner-border-width: 3px;
--sk-spinner-color: #ff6b6b;
}
#Switch
File: src/primitives/Switch/Switch.css
#CSS Variables
| Variable |
Default |
Description |
--sk-switch-track-bg |
var(--sk-bg-tertiary) |
Unchecked track background |
--sk-switch-track-bg-checked |
var(--sk-accent) |
Checked track background |
--sk-switch-thumb-bg |
white |
Thumb background color |
--sk-duration-fast |
150ms |
Toggle transition duration |
#Class Names
| Class |
Description |
.sk-switch |
Root switch container |
.sk-switch[data-disabled] |
Disabled switch |
.sk-switch__main |
Label/description wrapper |
.sk-switch__label |
Switch label text |
.sk-switch__description |
Switch description |
.sk-switch__control |
Toggle track element |
.sk-switch__control[data-checked] |
Checked track |
.sk-switch__thumb |
Draggable thumb |
.sk-switch--md |
Medium size (default) |
.sk-switch--sm |
Small size |
#Customization Example
.sk-switch {
--sk-switch-track-bg: rgba(0, 0, 0, 0.3);
--sk-switch-track-bg-checked: #10b981;
--sk-switch-thumb-bg: #ffffff;
}
#Tabs
File: src/primitives/Tabs/Tabs.css
#Class Names
| Class |
Description |
.sk-tabs |
Root tabs container |
.sk-tabs--vertical |
Vertical tab layout |
.sk-tabs__list |
Tab triggers list |
.sk-tabs__list--vertical |
Vertical triggers list |
.sk-tabs__trigger |
Individual tab button |
.sk-tabs__trigger[data-selected] |
Selected tab |
.sk-tabs__trigger[data-disabled] |
Disabled tab |
.sk-tabs__content |
Tab panel content |
.sk-tabs__content[data-state='inactive'] |
Inactive panel |
#Timeline
File: src/primitives/Timeline/Timeline.css
#Class Names
| Class |
Description |
.sk-timeline |
Root timeline container |
.sk-timeline--vertical |
Vertical layout |
.sk-timeline--horizontal |
Horizontal layout |
.sk-timeline__item |
Individual timeline item |
.sk-timeline__item--completed |
Completed status |
.sk-timeline__item--active |
Active/current status |
.sk-timeline__item--pending |
Pending status |
.sk-timeline__marker |
Dot + line wrapper |
.sk-timeline__dot |
Status dot/icon |
.sk-timeline__line |
Connecting line |
.sk-timeline__content |
Item content |
.sk-timeline__title |
Item title |
.sk-timeline__description |
Item description |
.sk-timeline__meta |
Metadata text |
.sk-timeline--sm |
Small size |
.sk-timeline--md |
Medium size |
.sk-timeline--lg |
Large size |
File: src/primitives/Tooltip/Tooltip.css
#CSS Variables
| Variable |
Default |
Description |
--sk-z-tooltip |
(theme value) |
Tooltip z-index |
#Class Names
| Class |
Description |
.sk-tooltip__trigger |
Tooltip trigger wrapper |
.sk-tooltip__content |
Tooltip content box |
#Composites
#Confirm Dialog
File: src/composites/ConfirmDialog/ConfirmDialog.css
#Class Names
| Class |
Description |
.sk-confirm-dialog__footer |
Footer with action buttons |
#Toast
File: src/composites/Toast/Toast.css
#CSS Variables
| Variable |
Default |
Description |
--sk-z-toast |
(theme value) |
Toast z-index |
--sk-toast-max-w |
420px |
Toast max width |
--sk-toast-progress-h |
3px |
Progress bar height |
#Class Names
| Class |
Description |
.sk-toast-container |
Fixed toast container |
.sk-toast-container--top-right |
Top-right position |
.sk-toast-container--top-left |
Top-left position |
.sk-toast-container--bottom-right |
Bottom-right position |
.sk-toast-container--bottom-left |
Bottom-left position |
.sk-toast |
Individual toast element |
.sk-toast--success |
Success variant (green) |
.sk-toast--error |
Error variant (red) |
.sk-toast--warning |
Warning variant (yellow) |
.sk-toast--info |
Info variant (blue) |
.sk-toast__content |
Toast content wrapper |
.sk-toast__icon |
Toast icon |
.sk-toast__text |
Text content wrapper |
.sk-toast__title |
Toast title |
.sk-toast__description |
Toast description |
.sk-toast__close |
Close button |
.sk-toast__progress |
Progress bar |
#Keyframe Animations
sk-toast-slide-in - Slide in from right
#Customization Example
.sk-toast {
--sk-toast-max-w: 500px;
--sk-toast-progress-h: 4px;
}
#Theme Integration
All CSS variables reference the HyperKit theme system. Override theme variables globally in ThemeProvider:
import { ThemeProvider } from '@ybouhjira/hyperkit';
<ThemeProvider
theme={{
colors: {
accent: '#ff6b6b',
bg: { primary: '#1a1a1a', secondary: '#2a2a2a' },
text: { primary: '#ffffff', secondary: '#a0a0a0' },
},
spacing: { xs: '4px', sm: '8px', md: '16px', lg: '24px' },
radius: { sm: '4px', md: '8px', lg: '12px' },
}}
>
{/* Your app */}
</ThemeProvider>;
Or override component-specific variables in your CSS:
:root {
/* Override button colors */
--sk-btn-primary-bg: #ff6b6b;
--sk-btn-primary-hover-bg: #ff5252;
/* Override card styling */
--sk-card-radius: 16px;
--sk-card-shadow-elevated: 0 8px 24px rgba(0, 0, 0, 0.3);
}
#CSS Class Naming Convention
All HyperKit classes follow BEM (Block Element Modifier) with the sk- prefix:
- Block:
.sk-{component} (e.g., .sk-button, .sk-card)
- Element:
.sk-{component}__{element} (e.g., .sk-card__title)
- Modifier:
.sk-{component}--{modifier} (e.g., .sk-button--primary)
- State:
[data-state] attributes (e.g., [data-checked], [data-expanded])
#Additional Resources
- Component API: See the component reference for prop interfaces
- Explorer: Browse live examples in the component explorer
- Theme Guide: See Theming for color/spacing/radius tokens
- AI Docs: Machine-readable docs ship in the npm package as
llms.txt and llms-full.txt