Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/tokens/.gitignore
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
# Dependencies
node_modules/

# Build outputs
dist/
# Build outputs (committed for F-Droid and CI compatibility)
# dist/

# Logs
*.log
Expand Down
336 changes: 336 additions & 0 deletions packages/tokens/dist/css/tokens.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,336 @@
/**
* ODE Design Tokens
*
* This file is auto-generated by Style Dictionary.
* Do not edit directly. Edit source files in src/tokens/ instead.
*
* Generated: 2026-03-15T16:33:23.827Z
*/

:root {
--contrast-aa-large: 3:1;
--contrast-aa-normal: 4.5:1;
--contrast-aaa-large: 4.5:1;
--contrast-aaa-normal: 7:1;
--focus-ring-width: 2px;
--focus-ring-offset: 2px;
--focus-ring-color: #4f7f4e;
--focus-ring-opacity: 1;
--touch-target-min: 44px;
--touch-target-medium: 52px;
--touch-target-comfortable: 48px;
--touch-target-large: 56px;
--border-radius-none: 0px;
--border-radius-sm: 4px;
--border-radius-md: 8px;
--border-radius-lg: 12px;
--border-radius-xl: 16px;
--border-radius-2xl: 20px;
--border-radius-full: 9999px;
--border-width-none: 0px;
--border-width-hairline: 0.5px;
--border-width-thin: 1px;
--border-width-medium: 2px;
--border-width-thick: 3px;
--color-brand-primary-50: #f0f7ef;
--color-brand-primary-100: #d9e9d8;
--color-brand-primary-200: #b9d5b8;
--color-brand-primary-300: #90bd8f;
--color-brand-primary-400: #6fa46e;
--color-brand-primary-500: #4f7f4e;
--color-brand-primary-600: #3f6a3e;
--color-brand-primary-700: #30552f;
--color-brand-primary-800: #224021;
--color-brand-primary-900: #173016;
--color-brand-primary-alpha-3: rgba(79, 127, 78, 0.03);
--color-brand-primary-alpha-5: rgba(79, 127, 78, 0.05);
--color-brand-primary-alpha-6: rgba(79, 127, 78, 0.06);
--color-brand-primary-alpha-8: rgba(79, 127, 78, 0.08);
--color-brand-primary-alpha-10: rgba(79, 127, 78, 0.1);
--color-brand-primary-alpha-13: rgba(79, 127, 78, 0.13);
--color-brand-primary-alpha-15: rgba(79, 127, 78, 0.15);
--color-brand-primary-alpha-16: rgba(79, 127, 78, 0.16);
--color-brand-primary-alpha-18: rgba(79, 127, 78, 0.18);
--color-brand-primary-alpha-20: rgba(79, 127, 78, 0.2);
--color-brand-primary-alpha-25: rgba(79, 127, 78, 0.25);
--color-brand-primary-alpha-30: rgba(79, 127, 78, 0.3);
--color-brand-primary-alpha-35: rgba(79, 127, 78, 0.35);
--color-brand-primary-alpha-40: rgba(79, 127, 78, 0.4);
--color-brand-primary-alpha-50: rgba(79, 127, 78, 0.5);
--color-brand-primary-alpha-60: rgba(79, 127, 78, 0.6);
--color-brand-primary-alpha-70: rgba(79, 127, 78, 0.7);
--color-brand-primary-alpha-80: rgba(79, 127, 78, 0.8);
--color-brand-secondary-50: #fef9ee;
--color-brand-secondary-100: #fcefd2;
--color-brand-secondary-200: #f9e0a8;
--color-brand-secondary-300: #f5cc75;
--color-brand-secondary-400: #f0b84d;
--color-brand-secondary-500: #e9b85b;
--color-brand-secondary-600: #d9a230;
--color-brand-secondary-700: #b8861c;
--color-brand-secondary-800: #976d1a;
--color-brand-secondary-900: #7c5818;
--color-brand-secondary-alpha-20: rgba(233, 184, 91, 0.2);
--color-brand-secondary-alpha-30: rgba(233, 184, 91, 0.3);
--color-brand-secondary-alpha-40: rgba(233, 184, 91, 0.4);
--color-neutral-50: #fafafa;
--color-neutral-100: #f5f5f5;
--color-neutral-200: #eeeeee;
--color-neutral-300: #e0e0e0;
--color-neutral-400: #bdbdbd;
--color-neutral-500: #9e9e9e;
--color-neutral-600: #757575;
--color-neutral-700: #616161;
--color-neutral-800: #424242;
--color-neutral-900: #212121;
--color-neutral-white: #ffffff;
--color-neutral-black: #000000;
--color-semantic-error-50: #fef2f2;
--color-semantic-error-500: #f44336;
--color-semantic-error-600: #dc2626;
--color-semantic-error-alpha-15: rgba(244, 67, 54, 0.15);
--color-semantic-error-alpha-20: rgba(244, 67, 54, 0.2);
--color-semantic-error-alpha-30: rgba(244, 67, 54, 0.3);
--color-semantic-error-ios: #ff3b30;
--color-semantic-success-50: #f0f9f0;
--color-semantic-success-500: #34c759;
--color-semantic-success-600: #2e7d32;
--color-semantic-success-alpha-15: rgba(52, 199, 89, 0.15);
--color-semantic-success-alpha-20: rgba(52, 199, 89, 0.2);
--color-semantic-success-alpha-30: rgba(52, 199, 89, 0.3);
--color-semantic-info-50: #eff6ff;
--color-semantic-info-500: #2196f3;
--color-semantic-info-600: #2563eb;
--color-semantic-info-alpha-20: rgba(33, 150, 243, 0.2);
--color-semantic-info-ios: #007aff;
--color-semantic-info-light: #e3f2fd;
--color-semantic-info-medium: #4a90e2;
--color-semantic-warning-50: #fffbeb;
--color-semantic-warning-500: #ff9500;
--color-semantic-warning-600: #d97706;
--color-semantic-scanner-success: #00ff00;
--color-semantic-theme-background-base: #212121;
--color-semantic-theme-background-elevated: #2a2a2a;
--color-semantic-theme-background-overlay: #1a1a1a;
--color-semantic-theme-background-card: rgba(255, 255, 255, 0.05);
--color-semantic-theme-text-primary: rgba(255, 255, 255, 0.9);
--color-semantic-theme-text-secondary: rgba(255, 255, 255, 0.6);
--color-semantic-theme-text-tertiary: rgba(255, 255, 255, 0.4);
--color-semantic-theme-text-disabled: rgba(255, 255, 255, 0.3);
--color-semantic-theme-border-default: rgba(255, 255, 255, 0.1);
--color-semantic-theme-border-hover: rgba(255, 255, 255, 0.2);
--color-semantic-theme-border-focus: #4f7f4e;
--color-semantic-theme-light-background-base: #fafafa;
--color-semantic-theme-light-background-elevated: #ffffff;
--color-semantic-theme-light-background-overlay: #f5f5f5;
--color-semantic-theme-light-background-card: rgba(0, 0, 0, 0.02);
--color-semantic-theme-light-text-primary: rgba(33, 33, 33, 0.9);
--color-semantic-theme-light-text-secondary: rgba(33, 33, 33, 0.6);
--color-semantic-theme-light-text-tertiary: rgba(33, 33, 33, 0.4);
--color-semantic-theme-light-text-disabled: rgba(33, 33, 33, 0.3);
--color-semantic-theme-light-border-default: rgba(0, 0, 0, 0.08);
--color-semantic-theme-light-border-hover: rgba(0, 0, 0, 0.12);
--color-semantic-ui-scrollbar-track: rgba(79, 127, 78, 0.1);
--color-semantic-ui-scrollbar-thumb: rgba(79, 127, 78, 0.3);
--color-semantic-ui-scrollbar-thumb-hover: rgba(79, 127, 78, 0.5);
--color-semantic-ui-overlay-dark: rgba(33, 33, 33, 0.5);
--color-semantic-ui-overlay-light: rgba(250, 250, 250, 0.15);
--color-semantic-ui-overlay-background: rgba(0, 0, 0, 0.5);
--color-semantic-ui-gray-lightest: #f8f8f8;
--color-semantic-ui-gray-lighter: #f0f2f5;
--color-semantic-ui-gray-light: #e5e5e5;
--color-semantic-ui-gray-medium: #cccccc;
--color-semantic-ui-gray-ios: #8e8e93;
--color-semantic-ui-input-fill-dark: rgba(21, 21, 21, 0.85);
--color-semantic-ui-surface-dropdown-dark: rgba(33, 33, 33, 0.95);
--color-semantic-ui-surface-dropdown-light: rgba(255, 255, 255, 0.95);
--color-semantic-ui-surface-modal-dark: rgba(33, 33, 33, 0.98);
--color-semantic-ui-focus-ring-glow: rgba(79, 127, 78, 0.2);
--filter-blur-2: 2px;
--filter-blur-4: 4px;
--filter-blur-7: 7px;
--filter-blur-10: 10px;
--filter-blur-12: 12px;
--filter-blur-14: 14px;
--filter-blur-16: 16px;
--filter-blur-18: 18px;
--filter-blur-20: 20px;
--filter-blur-40: 40px;
--filter-blur-50: 50px;
--filter-blur-100: 100px;
--filter-blur-110: 110px;
--filter-drop-shadow-glow-sm: 0 0 12px var(--color-brand-primary-alpha-40);
--filter-drop-shadow-glow-md: 0 0 16px var(--color-brand-primary-alpha-60);
--filter-drop-shadow-glow-lg: 0 0 20px var(--color-brand-primary-alpha-60);
--filter-drop-shadow-glow-10: 0 0 10px var(--color-brand-primary-alpha-50);
--filter-drop-shadow-brand-sm: 0 2px 8px var(--color-brand-primary-alpha-30);
--filter-drop-shadow-brand-md: 0 4px 12px var(--color-brand-primary-alpha-30);
--filter-drop-shadow-secondary-md: 0 4px 12px var(--color-brand-secondary-alpha-40);
--duration-instant: 0ms;
--duration-fast: 150ms;
--duration-normal: 250ms;
--duration-slow: 350ms;
--duration-slower: 500ms;
--easing-linear: linear;
--easing-ease-in: cubic-bezier(0.4, 0, 1, 1);
--easing-ease-out: cubic-bezier(0, 0, 0.2, 1);
--easing-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
--opacity-0: 0;
--opacity-2: 0.02;
--opacity-3: 0.03;
--opacity-5: 0.05;
--opacity-6: 0.06;
--opacity-8: 0.08;
--opacity-10: 0.1;
--opacity-15: 0.15;
--opacity-20: 0.2;
--opacity-25: 0.25;
--opacity-30: 0.3;
--opacity-35: 0.35;
--opacity-40: 0.4;
--opacity-50: 0.5;
--opacity-60: 0.6;
--opacity-70: 0.7;
--opacity-80: 0.8;
--opacity-90: 0.9;
--opacity-95: 0.95;
--opacity-98: 0.98;
--opacity-100: 1;
--shadow-react-native-sm-shadow-color: #000000;
--shadow-react-native-sm-shadow-offset-width: 0;
--shadow-react-native-sm-shadow-offset-height: 1;
--shadow-react-native-sm-shadow-opacity: 0.1;
--shadow-react-native-sm-shadow-radius: 2;
--shadow-react-native-sm-elevation: 2;
--shadow-react-native-md-shadow-color: #000000;
--shadow-react-native-md-shadow-offset-width: 0;
--shadow-react-native-md-shadow-offset-height: 2;
--shadow-react-native-md-shadow-opacity: 0.15;
--shadow-react-native-md-shadow-radius: 4;
--shadow-react-native-md-elevation: 4;
--shadow-react-native-lg-shadow-color: #000000;
--shadow-react-native-lg-shadow-offset-width: 0;
--shadow-react-native-lg-shadow-offset-height: 4;
--shadow-react-native-lg-shadow-opacity: 0.2;
--shadow-react-native-lg-shadow-radius: 8;
--shadow-react-native-lg-elevation: 8;
--shadow-none: none;
--shadow-xs: 0 1px 2px 0 rgba(0,0,0,0.05);
--shadow-sm: 0 1px 3px 0 rgba(0,0,0,0.1);
--shadow-md: 0 4px 6px -1px rgba(0,0,0,0.1);
--shadow-lg: 0 10px 15px -3px rgba(0,0,0,0.1);
--shadow-xl: 0 20px 25px -5px rgba(0,0,0,0.1);
--shadow-2xl: 0 25px 50px -12px rgba(0,0,0,0.25);
--shadow-portal-sm: 0 2px 8px rgba(0,0,0,0.2);
--shadow-portal-md: 0 4px 16px rgba(0,0,0,0.3);
--shadow-portal-lg: 0 8px 32px rgba(0,0,0,0.4);
--shadow-portal-xs: 0 2px 8px var(--color-neutral-black-alpha-20);
--shadow-portal-focus-ring: 0 0 0 3px var(--color-brand-primary-alpha-20);
--shadow-portal-header-scrolled: 0 4px 24px var(--color-neutral-black-alpha-15), inset 0 1px 0 var(--color-neutral-black-alpha-5);
--shadow-portal-card: 0 8px 32px var(--color-neutral-black-alpha-40), inset 0 1px 0 var(--color-neutral-white-alpha-5);
--shadow-portal-card-light: 0 8px 32px var(--color-neutral-black-alpha-10), inset 0 1px 0 var(--color-neutral-white-alpha-5);
--shadow-portal-lg-light: 0 8px 32px var(--color-neutral-black-alpha-10);
--shadow-portal-modal: 0 12px 40px var(--color-neutral-black-alpha-40), 0 0 0 1px var(--color-brand-primary-alpha-30), inset 0 1px 0 var(--color-neutral-white-alpha-10);
--shadow-portal-modal-light: 0 12px 40px var(--color-neutral-black-alpha-20), 0 0 0 1px var(--color-brand-primary-alpha-50), inset 0 1px 0 var(--color-neutral-black-alpha-5);
--shadow-portal-dropdown: 0 2px 8px var(--color-neutral-black-alpha-8);
--shadow-portal-dropdown-light: 0 2px 8px var(--color-neutral-black-alpha-8), inset 0 1px 0 var(--color-neutral-black-alpha-3);
--shadow-portal-role-error: 0 2px 12px var(--color-semantic-error-alpha-30);
--shadow-portal-role-success: 0 2px 12px var(--color-semantic-success-alpha-30);
--shadow-portal-role-info: 0 2px 12px var(--color-semantic-info-alpha-20);
--spacing-0: 0px;
--spacing-1: 4px;
--spacing-2: 8px;
--spacing-3: 12px;
--spacing-4: 16px;
--spacing-5: 20px;
--spacing-6: 24px;
--spacing-8: 32px;
--spacing-10: 40px;
--spacing-12: 48px;
--spacing-16: 64px;
--spacing-20: 80px;
--spacing-24: 96px;
--font-family-sans: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif;
--font-family-mono: 'Courier New', Consolas, monospace;
--font-family-display: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
--font-size-xs: 12px;
--font-size-sm: 14px;
--font-size-base: 16px;
--font-size-lg: 18px;
--font-size-xl: 20px;
--font-size-2xl: 24px;
--font-size-3xl: 32px;
--font-size-4xl: 40px;
--font-size-5xl: 48px;
--font-size-6xl: 60px;
--font-weight-light: 300;
--font-weight-regular: 400;
--font-weight-medium: 500;
--font-weight-semibold: 600;
--font-weight-bold: 700;
--font-line-height-none: 1;
--font-line-height-tight: 1.25;
--font-line-height-normal: 1.5;
--font-line-height-relaxed: 1.75;
--font-line-height-loose: 2;
--font-letter-spacing-tighter: -0.05em;
--font-letter-spacing-tight: -0.025em;
--font-letter-spacing-normal: 0;
--font-letter-spacing-wide: 0.025em;
--font-letter-spacing-wider: 0.05em;
--font-letter-spacing-widest: 0.1em;
--z-index-hide: -1;
--z-index-base: 0;
--z-index-docked: 10;
--z-index-dropdown: 1000;
--z-index-sticky: 1100;
--z-index-overlay: 1300;
--z-index-modal: 1400;
--z-index-popover: 1500;
--z-index-toast: 1700;
--z-index-tooltip: 1800;
--component-button-radius: 8px;
--component-button-border-width: 1px;
--component-button-padding-small-vertical: 8px;
--component-button-padding-small-horizontal: 16px;
--component-button-padding-medium-vertical: 12px;
--component-button-padding-medium-horizontal: 24px;
--component-button-padding-large-vertical: 16px;
--component-button-padding-large-horizontal: 32px;
--component-button-min-height: 48px;
--component-button-width-standalone: 200px;
--icon-size-xs: 12px;
--icon-size-sm: 16px;
--icon-size-md: 20px;
--icon-size-lg: 24px;
--icon-size-xl: 32px;
--icon-size-2xl: 40px;
--icon-size-3xl: 48px;
--icon-stroke-thin: 1px;
--icon-stroke-normal: 1.5px;
--icon-stroke-medium: 2px;
--icon-stroke-thick: 2.5px;
--avatar-sm: 24px;
--avatar-md: 32px;
--avatar-lg: 48px;
--avatar-xl: 64px;
--avatar-2xl: 96px;
--logo-sm: 80px;
--logo-md: 120px;
--logo-lg: 160px;
--logo-xl: 200px;
--breakpoint-sm: 640px;
--breakpoint-md: 768px;
--breakpoint-lg: 1024px;
--breakpoint-xl: 1280px;
--breakpoint-2xl: 1536px;
--container-sm: 640px;
--container-md: 768px;
--container-lg: 1024px;
--container-xl: 1280px;
--container-2xl: 1536px;
--grid-columns: 12;
--grid-gutter: 16px;
--grid-gutter-sm: 8px;
--grid-gutter-lg: 24px;
}
Loading
Loading