UNPKG

tanuki-ui

Version:

HTML-first React component library with semantic elements, multi-OS themes, and production-ready visual node editor

290 lines (259 loc) 11.4 kB
:root { font-feature-settings: "rclt" off; /* Nintendo Switch Color Palette */ /* Primary Colors */ --switchRed: #e60012; --switchRedDark: #ce000a; --switchBlue: #0084ff; --switchBlueDark: #0066cc; --switchTeal: #00d1d1; --switchTealDark: #00a1a1; --switchNeonRed: #ff6b7a; --switchNeonBlue: #00c3ff; /* UI Colors */ --switchWhite: #ffffff; --switchLightGray: #f5f5f5; --switchMediumGray: #e4e4e4; --switchDarkGray: #2d2d2d; --switchBlack: #1a1a1a; --switchBackgroundGray: #ebebeb; --switchCardGray: #f8f8f8; /* Nintendo Brand Colors */ --nintendoRed: #e60012; --nintendoGray: #484848; --nintendoLightGray: #9b9b9b; /* System Colors */ --textColor: var(--switchDarkGray); --accentColor: var(--switchTeal); accent-color: var(--accentColor); --cautionColor: var(--switchRed); --windowBackgroundColor: var(--switchBackgroundGray); --labelColor: var(--switchDarkGray); --secondaryLabelColor: var(--nintendoGray); --tertiaryLabelColor: var(--nintendoLightGray); --quaternaryLabelColor: rgba(45, 45, 45, 0.3); --placeholderTextColor: var(--nintendoLightGray); --selectedTextColor: var(--switchWhite); --textBackgroundColor: var(--switchWhite); --selectedTextBackgroundColor: var(--switchTeal); --keyboardFocusIndicatorColor: rgba(0, 209, 209, 0.3); --unemphasizedSelectedTextColor: var(--switchDarkGray); --unemphasizedSelectedTextBackgroundColor: var(--switchMediumGray); --linkColor: var(--switchBlue); --separatorColor: var(--switchMediumGray); --selectedContentBackgroundColor: var(--switchTeal); --unemphasizedSelectedContentBackgroundColor: var(--switchMediumGray); --selectedMenuItemTextColor: var(--switchWhite); --gridColor: var(--switchMediumGray); --headerTextColor: var(--switchDarkGray); --controlAccentColor: var(--switchTeal); --controlColor: var(--switchWhite); --controlTextColor: var(--switchDarkGray); --disabledControlTextColor: var(--nintendoLightGray); --selectedControlColor: var(--switchTeal); --selectedControlTextColor: var(--switchWhite); --alternateSelectedControlTextColor: var(--switchWhite); --scrubberTexturedBackgroundColor: var(--switchCardGray); --windowFrameTextColor: var(--switchDarkGray); --underPageBackgroundColor: rgba(45, 45, 45, 0.95); --findHighlightColor: #ffeb3b; --highlightColor: var(--switchWhite); --shadowColor: rgba(0, 0, 0, 1); --systemBrownColor: #8d6e63; --systemGrayColor: var(--nintendoLightGray); --systemGreenColor: #4caf50; --systemIndigoColor: #5c6bc0; --systemOrangeColor: #ff9800; --systemPinkColor: #e91e63; --systemPurpleColor: #9c27b0; --systemRedColor: var(--switchRed); --systemTealColor: var(--switchTeal); --systemYellowColor: #ffeb3b; --systemBlueColor: var(--switchBlue); /* Fonts - Nintendo Switch uses custom Nintendo fonts */ --themeDefaultFontFamily: "Nintendo Switch UI", "UD Shin Go", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif; --themeControlFontFamily: var(--themeDefaultFontFamily); --themeLabelFontFamily: var(--themeDefaultFontFamily); --themeSystemFont: normal normal 400 16px/1.5 var(--themeDefaultFontFamily); --textFont: normal normal 400 16px/1.5 var(--themeDefaultFontFamily); --labelFont: normal normal 500 14px/1.4 var(--themeLabelFontFamily); /* Control - Nintendo Switch button style */ --controlFocusBoxShadow: 0 0 0 3px var(--switchTealDark); --controlBackground: var(--switchWhite); --controlHoverBackground: var(--switchLightGray); --controlActiveBackground: var(--switchMediumGray); --controlTextColor: var(--switchDarkGray); --controlAccentColor: var(--switchTeal); --controlBoxShadow: 0 2px 8px rgba(0, 0, 0, 0.15); --controlTextFont: normal normal 500 16px/1.25 var(--themeControlFontFamily); --controlBorderRadius: 35px; --controlPadding: 12px 32px; --controlTextLetterSpacing: 0.5px; --controlBorder: none; /* Primary Button - Switch style with teal accent */ --controlBackground--primary: var(--switchTeal); --controlTextColor--primary: var(--switchWhite); --controlBoxShadow--primary: 0 2px 8px rgba(0, 209, 209, 0.4); --controlHoverBackground--primary: var(--switchTealDark); --controlActiveBackground--primary: #009999; /* Secondary Button - Switch outline style */ --controlBackground--secondary: transparent; --controlBorder--secondary: 2px solid var(--switchMediumGray); --controlTextColor--secondary: var(--switchDarkGray); --controlBoxShadow--secondary: none; --controlHoverBackground--secondary: var(--switchLightGray); --controlHoverBorder--secondary: 2px solid var(--switchDarkGray); /* Input - Nintendo Switch style */ --inputPadding: 12px 16px; --inputFont: normal normal 400 16px/1.5 var(--themeDefaultFontFamily); --inputBoxShadow: inset 0 2px 4px rgba(0, 0, 0, 0.1); --inputBorder: 2px solid var(--switchMediumGray); --inputBorderRadius: 12px; --inputBackground: var(--switchWhite); --inputFocusBorder: 2px solid var(--switchTeal); --inputFocusBoxShadow: 0 0 0 3px rgba(0, 209, 209, 0.2); /* SelectBox - Switch dropdown style */ --selectBoxSplitButtonWidth: 40px; --selectBoxSplitButtonBorderColor: var(--switchMediumGray); --selectBoxSplitButtonBorderWidth: 0 0 0 2px; --selectBoxSplitButtonBackground: url("data:image/svg+xml,%0A%3Csvg width='12px' height='8px' viewBox='0 0 12 8' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M6 8L0 0h12z' fill='%232d2d2d'/%3E%3C/svg%3E"); /* Check box - Switch style */ --checkboxSize: 24px; --checkboxBorderRadius: 6px; /* Toolbar */ --barItemsFontFamily: var(--themeDefaultFontFamily); --barItemsTextColor: var(--switchDarkGray); --barItemsAccentColor: var(--switchTeal); --barItemsLabelTextColor: var(--nintendoGray); --barItemsControlPlaceholderTextColor: var(--nintendoLightGray); --barItemsControlMarkerBackgroundColor: var(--switchCardGray); --barItemsDisabledLabelTextColor: var(--nintendoLightGray); --barItemsDisabledLabelBackgroundColor: var(--switchMediumGray); --barItemsBorderRadius: 12px; --barItemsControlMarkerBorderRadius: 8px; --barItemsControlsBorder: 2px solid var(--switchMediumGray); --barItemsHoverSegmentControlBackground: var(--switchLightGray); --barItemsActiveSegmentControlBackground: var(--switchTeal); --segmentControlBackgroundColor: var(--switchCardGray); /* Sidebar - Nintendo Switch menu style */ --sidebarBackground: var(--switchCardGray); --sidebarListItemFont: normal normal 400 16px/1.5 var(--themeDefaultFontFamily); --sidebarListItemBorderRadius: 12px; --selectedSidebarListItemBackground: var(--switchTeal); --selectedSidebarListItemTextColor: var(--switchWhite); --selectedSidebarListItemMarker: none; --sidebarItemPadding: 12px 20px; --sidebarItemHoverBackground: var(--switchLightGray); --sidebarListItemDetailsBackground: var(--switchLightGray); --sidebarListItemTextColor: var(--switchDarkGray); --sidebarListItemHoverBackground: var(--switchLightGray); --sidebarListItemIconSize: 20px; --sidebarListItemChildrenPadding: 0 0 0 28px; --sidebarSectionTitleColor: var(--nintendoGray); --sidebarSectionTitlePadding: 20px 20px 8px 20px; --sidebarListItemPadding: 12px 20px; /* Sidebar Section Title - Nintendo Style */ --sidebarSectionTitleFont: var(--labelFont); --sidebarSectionTitleLetterSpacing: 0.02em; --sidebarSectionTitleMargin: 20px 0 8px 0; --sidebarSectionTitleBackground: transparent; --sidebarSectionTitleBorderRadius: 0; --sidebarSectionTitleTextTransform: uppercase; /* Dialog - Switch modal style */ --dialogBackground: var(--switchWhite); --dialogBoxShadow: 0 8px 32px rgba(0, 0, 0, 0.25); --dialogBorderRadius: 16px; --dialogPadding: 24px; /* Tab Bar - Nintendo Switch navigation */ --tabBarBackground: var(--switchWhite); --tabBarBoxShadow: 0 2px 8px rgba(0, 0, 0, 0.1); --tabItemHeight: 56px; --tabItemTextColor: var(--nintendoGray); --tabItemBoxShadow: none; --tabItemIconSize: 24px; --tabItemFont: normal normal 500 14px/1.4 var(--themeLabelFontFamily); --tabBarLayout: center; --tabItemBackground-selected: transparent; --tabItemBoxShadow-selected: inset 0 -3px 0 0 var(--switchTeal); --tabItemTextColor-selected: var(--switchTeal); --tabItemFont-selected: normal normal 600 14px/1.4 var(--themeLabelFontFamily); /* Table - Switch style */ --tableBackgroundColor: var(--switchWhite); --tableBorderColor: var(--switchMediumGray); --tableHeaderBackgroundColor: var(--switchCardGray); --tableHeaderBorderColor: var(--switchMediumGray); --tableRowHoverBackground: var(--switchLightGray); --tableRowSelectedBackground: rgba(0, 209, 209, 0.1); /* Card - Switch game card style */ --cardBackground: var(--switchWhite); --cardBorderRadius: 16px; --cardBoxShadow: 0 4px 16px rgba(0, 0, 0, 0.1); --cardPadding: 20px; --cardHoverTransform: translateY(-4px); --cardHoverBoxShadow: 0 8px 24px rgba(0, 0, 0, 0.15); /* Window - Switch UI window */ --windowBoxShadow: 0 8px 32px rgba(0, 0, 0, 0.2); --windowBorderRadius: 16px; /* Segment Control - Switch toggle style */ --segmentControlPadding: 4px; --segmentControlSegmentPadding: 8px 24px; --segmentControlBoxShadow: inset 0 2px 4px rgba(0, 0, 0, 0.1); --segmentControlBackground: var(--switchMediumGray); --segmentControlBorderRadius: 28px; --segmentControlIndicatorBoxShadow: 0 2px 8px rgba(0, 0, 0, 0.15); --segmentControlIndicatorBackground: var(--switchWhite); --segmentControlIndicatorBorderRadius: 24px; /* Scrollbar - Nintendo style */ --scrollBarThumbColor: var(--switchMediumGray); --activeScrollBarThumbColor: var(--nintendoGray); --scrollBarWidth: 8px; /* Animation */ --animationDuration: 200ms; --animationEasing: cubic-bezier(0.25, 0.46, 0.45, 0.94); } /* Dark theme support */ @media (prefers-color-scheme: dark) { :root { /* Dark mode adjustments */ --switchBackgroundGray: #1a1a1a; --switchCardGray: #2d2d2d; --switchWhite: #f5f5f5; --switchLightGray: #2d2d2d; --switchMediumGray: #484848; --textColor: var(--switchWhite); --labelColor: var(--switchWhite); --secondaryLabelColor: #b0b0b0; --windowBackgroundColor: var(--switchBlack); --controlBackground: var(--switchDarkGray); --controlTextColor: var(--switchWhite); --inputBackground: var(--switchDarkGray); --inputBorder: 2px solid var(--switchMediumGray); --tableBackgroundColor: var(--switchDarkGray); --cardBackground: var(--switchDarkGray); --dialogBackground: var(--switchDarkGray); --tabBarBackground: var(--switchDarkGray); --segmentControlBackground: var(--switchBlack); --segmentControlIndicatorBackground: var(--switchDarkGray); --sidebarBackground: var(--switchDarkGray); --sidebarListItemDetailsBackground: var(--switchBlack); --sidebarListItemTextColor: var(--switchWhite); --sidebarListItemHoverBackground: #3a3a3a; --sidebarSectionTitleColor: #b0b0b0; } } /* Scrollbar styling */ body ::-webkit-scrollbar { width: var(--scrollBarWidth); height: var(--scrollBarWidth); background: transparent; } body ::-webkit-scrollbar-thumb { background: var(--scrollBarThumbColor); border-radius: 4px; } body ::-webkit-scrollbar-thumb:hover { background: var(--activeScrollBarThumbColor); } body ::-webkit-scrollbar-track { background: transparent; }