import { createTheme } from "../types"; const tokens = { black: "hsla(0, 0%, 0%, 1)", // General black color white: "hsla(0, 0%, 100%, 1)", // General white color semantic: { red: { c100: "hsla(15, 40%, 65%, 1)", // Error text - washed out autumn red c200: "hsla(15, 35%, 55%, 1)", // Video player scraping error - muted red-orange c300: "hsla(15, 30%, 45%, 1)", // Danger button - deeper autumn red c400: "hsla(15, 25%, 35%, 1)", // Not currently used - dark autumn red }, green: { c100: "hsla(60, 30%, 55%, 1)", // Success text - washed out autumn green c200: "hsla(60, 25%, 45%, 1)", // Video player scraping success - muted yellow-green c300: "hsla(60, 20%, 35%, 1)", // Not currently used - deeper autumn green c400: "hsla(60, 15%, 25%, 1)", // Not currently used - dark autumn green }, silver: { c100: "hsla(45, 20%, 85%, 1)", // Primary button hover - washed out yellow c200: "hsla(45, 15%, 75%, 1)", // Not currently used - muted yellow c300: "hsla(45, 10%, 60%, 1)", // Secondary button text - subtle yellow tint c400: "hsla(45, 8%, 45%, 1)", // Main text in video player context - warm gray }, yellow: { c100: "hsla(45, 60%, 75%, 1)", // Best onboarding highlight - washed out golden c200: "hsla(45, 50%, 65%, 1)", // Dropdown highlight hover - muted golden c300: "hsla(45, 40%, 55%, 1)", // Not currently used - deeper golden c400: "hsla(45, 30%, 45%, 1)", // Dropdown highlight - dark golden }, rose: { c100: "hsla(20, 35%, 60%, 1)", // Authentication error text - washed out autumn rose c200: "hsla(20, 30%, 50%, 1)", // Danger button hover - muted orange-red c300: "hsla(20, 25%, 40%, 1)", // Danger button - deeper autumn rose c400: "hsla(20, 20%, 30%, 1)", // Not currently used - dark autumn rose }, }, blue: { c50: "hsla(25, 100%, 85%, 1)", // soft orange c100: "hsla(25, 80%, 70%, 1)", // brighter orange c200: "hsla(25, 70%, 60%, 1)", // theme primary: warm orange c300: "hsla(25, 60%, 45%, 1)", // accent B: darker orange c400: "hsla(25, 50%, 35%, 1)", // light bar c500: "hsla(25, 45%, 25%, 1)", // accent B background c600: "hsla(25, 42%, 20%, 1)", c700: "hsla(25, 40%, 16%, 1)", c800: "hsla(25, 35%, 10%, 1)", c900: "hsla(25, 30%, 7%, 1)", }, purple: { c50: "hsla(15, 100%, 75%, 1)", // soft red-orange for link hover - darker c100: "hsla(15, 100%, 60%, 1)", // bright red-orange logo/link - much darker c200: "hsla(15, 90%, 50%, 1)", // red-orange progress/loader - more saturated c300: "hsla(15, 80%, 45%, 1)", // toggle/onboarding bar - more saturated c400: "hsla(15, 75%, 40%, 1)", // card icon - more saturated c500: "hsla(15, 70%, 32%, 1)", // accent A background - more saturated c600: "hsla(15, 65%, 25%, 1)", c700: "hsla(15, 60%, 18%, 1)", c800: "hsla(15, 55%, 12%, 1)", c900: "hsla(15, 50%, 8%, 1)", }, ash: { c50: "hsla(45, 39%, 60%, 1)", // subtle yellow-tinted gray c100: "hsla(45, 24%, 55%, 1)", // warm yellow-gray c200: "hsla(45, 10%, 35%, 1)", // sidebar border - yellow tint c300: "hsla(45, 8%, 28%, 1)", // card divider - yellow tint c400: "hsla(45, 6%, 22%, 1)", // bg + hover accents - yellow tint c500: "hsla(25, 45%, 25%, 1)", // accent B background c600: "hsla(25, 42%, 20%, 1)", c700: "hsla(25, 40%, 16%, 1)", c800: "hsla(25, 35%, 10%, 1)", c900: "hsla(25, 30%, 7%, 1)", // deepest shade, shadows }, shade: { c25: "hsla(24, 80%, 70%, 1)", // red hover accent c50: "hsla(25, 100%, 72%, 1)", // rich pumpkin for main text c100: "hsla(25, 80%, 60%, 1)", // placeholder/icon c200: "hsla(25, 60%, 45%, 1)", // hover bg c300: "hsla(25, 60%, 35%, 1)", // pill background, auth border c400: "hsla(25, 50%, 21%, 1)", // light bar c500: "hsla(35, 25%, 22%, 1)", // dropdown background - subtle yellow tint c600: "hsla(45, 20%, 16%, 1)", // modal/dropdown background - washed out yellow c700: "hsla(60, 15%, 12%, 1)", // alt bg - subtle green tint c800: "hsla(25, 38%, 8%, 1)", // main bg - lighter c900: "hsla(25, 35%, 5%, 1)", // hover shadow - lighter }, }; export default createTheme({ name: "autumn", extend: { colors: { themePreview: { primary: tokens.blue.c200, secondary: tokens.shade.c50, ghost: tokens.purple.c400, }, // Branding pill: { background: tokens.shade.c300, backgroundHover: tokens.shade.c200, highlight: tokens.blue.c200, activeBackground: tokens.shade.c300, }, // meta data for the theme itself global: { accentA: tokens.blue.c200, accentB: tokens.blue.c300, }, // light bar lightBar: { light: tokens.blue.c400, }, // Buttons buttons: { toggle: tokens.purple.c300, toggleDisabled: tokens.ash.c500, danger: tokens.semantic.rose.c300, dangerHover: tokens.semantic.rose.c200, secondary: tokens.ash.c700, secondaryText: tokens.semantic.silver.c300, secondaryHover: tokens.ash.c700, primary: tokens.white, primaryText: tokens.black, primaryHover: tokens.semantic.silver.c100, purple: tokens.purple.c500, purpleHover: tokens.purple.c400, cancel: tokens.ash.c500, cancelHover: tokens.ash.c300, }, // only used for body colors/textures background: { main: tokens.shade.c900, secondary: tokens.shade.c600, secondaryHover: tokens.shade.c400, accentA: tokens.purple.c500, accentB: tokens.blue.c500, }, // Modals modal: { background: tokens.shade.c800, }, // typography type: { logo: tokens.purple.c100, emphasis: tokens.white, text: tokens.shade.c50, dimmed: tokens.shade.c50, divider: tokens.ash.c500, secondary: tokens.ash.c100, danger: tokens.semantic.red.c100, success: tokens.semantic.green.c100, link: tokens.purple.c100, linkHover: tokens.purple.c50, }, // search bar search: { background: tokens.shade.c500, hoverBackground: tokens.shade.c600, focused: tokens.shade.c400, placeholder: tokens.shade.c100, icon: tokens.shade.c100, text: tokens.white, }, // media cards mediaCard: { hoverBackground: tokens.purple.c900, hoverAccent: tokens.blue.c100, hoverShadow: tokens.shade.c900, shadow: tokens.purple.c700, barColor: tokens.ash.c200, barFillColor: tokens.purple.c100, badge: tokens.shade.c700, badgeText: tokens.ash.c100, }, // Large card largeCard: { background: tokens.shade.c600, icon: tokens.purple.c400, }, // Dropdown dropdown: { background: tokens.shade.c600, altBackground: tokens.shade.c700, hoverBackground: tokens.shade.c500, highlight: tokens.semantic.yellow.c400, highlightHover: tokens.semantic.yellow.c200, text: tokens.shade.c50, secondary: tokens.shade.c100, border: tokens.shade.c400, contentBackground: tokens.shade.c500, }, // Passphrase authentication: { border: tokens.shade.c300, inputBg: tokens.shade.c600, inputBgHover: tokens.shade.c500, wordBackground: tokens.shade.c500, copyText: tokens.shade.c100, copyTextHover: tokens.ash.c50, errorText: tokens.semantic.rose.c100, }, // Settings page settings: { sidebar: { activeLink: tokens.shade.c600, badge: tokens.shade.c900, type: { secondary: tokens.shade.c200, inactive: tokens.shade.c50, icon: tokens.shade.c50, iconActivated: tokens.purple.c200, activated: tokens.purple.c50, }, }, card: { border: tokens.shade.c400, background: tokens.shade.c400, altBackground: tokens.shade.c400, }, saveBar: { background: tokens.shade.c800, }, }, // Utilities utils: { divider: tokens.ash.c300, }, // Onboarding onboarding: { bar: tokens.shade.c400, barFilled: tokens.purple.c300, divider: tokens.shade.c200, card: tokens.shade.c800, cardHover: tokens.shade.c700, border: tokens.shade.c600, good: tokens.purple.c100, best: tokens.semantic.yellow.c100, link: tokens.purple.c100, }, // Error page errors: { card: tokens.shade.c800, border: tokens.ash.c500, type: { secondary: tokens.ash.c100, }, }, // About page about: { circle: tokens.ash.c500, circleText: tokens.ash.c50, }, // About page editBadge: { bg: tokens.ash.c500, bgHover: tokens.ash.c400, text: tokens.ash.c50, }, progress: { background: tokens.ash.c50, preloaded: tokens.ash.c50, filled: tokens.purple.c200, }, // video player video: { buttonBackground: tokens.ash.c200, autoPlay: { background: tokens.ash.c700, hover: tokens.ash.c500, }, scraping: { card: tokens.shade.c700, error: tokens.semantic.red.c200, success: tokens.semantic.green.c200, loading: tokens.purple.c200, noresult: tokens.ash.c100, }, audio: { set: tokens.purple.c200, }, context: { background: tokens.ash.c900, light: tokens.shade.c50, border: tokens.ash.c600, hoverColor: tokens.ash.c600, buttonFocus: tokens.ash.c500, flagBg: tokens.ash.c500, inputBg: tokens.ash.c600, buttonOverInputHover: tokens.ash.c500, inputPlaceholder: tokens.ash.c200, cardBorder: tokens.ash.c700, slider: tokens.ash.c50, sliderFilled: tokens.purple.c200, error: tokens.semantic.red.c200, buttons: { list: tokens.ash.c700, active: tokens.ash.c900, }, closeHover: tokens.ash.c800, type: { main: tokens.semantic.silver.c400, secondary: tokens.ash.c200, accent: tokens.purple.c200, }, }, }, }, }, });