{ "$schema": "https://ui.shadcn.com/schema/registry.json", "name": "gamecn", "homepage": "https://gamecn.dev", "items": [ { "name": "gamecn-theme", "type": "registry:theme", "title": "GameCN Theme", "description": "Runtime GameCN theme bundle with RPG, cyberpunk, horror, sci-fi, and fantasy parchment modes.", "cssVars": { "theme": { "font-sans": "\"Atkinson Hyperlegible Next\", ui-sans-serif, system-ui, sans-serif", "font-display": "\"Saira\", ui-sans-serif, system-ui, sans-serif" }, "light": { "background": "oklch(0.972 0.015 105)", "foreground": "oklch(0.174 0.02 118)", "card": "oklch(0.994 0.006 105)", "card-foreground": "oklch(0.174 0.02 118)", "primary": "oklch(0.56 0.17 132)", "primary-foreground": "oklch(0.985 0.012 112)", "secondary": "oklch(0.91 0.037 109)", "secondary-foreground": "oklch(0.19 0.024 118)", "muted": "oklch(0.91 0.022 110)", "muted-foreground": "oklch(0.43 0.036 112)", "accent": "oklch(0.58 0.16 42)", "accent-foreground": "oklch(0.985 0.014 78)", "border": "oklch(0.82 0.032 111)", "input": "oklch(0.82 0.032 111)", "ring": "oklch(0.56 0.17 132)" }, "dark": { "background": "oklch(0.153 0.018 117)", "foreground": "oklch(0.948 0.021 95)", "card": "oklch(0.188 0.024 123)", "card-foreground": "oklch(0.94 0.022 95)", "primary": "oklch(0.803 0.19 132)", "primary-foreground": "oklch(0.156 0.023 128)", "secondary": "oklch(0.315 0.044 118)", "secondary-foreground": "oklch(0.93 0.025 96)", "muted": "oklch(0.242 0.026 119)", "muted-foreground": "oklch(0.711 0.039 103)", "accent": "oklch(0.725 0.18 42)", "accent-foreground": "oklch(0.15 0.018 70)", "border": "oklch(0.321 0.036 116)", "input": "oklch(0.28 0.031 116)", "ring": "oklch(0.803 0.19 132)" } }, "categories": [ "theme", "gaming" ], "files": [ { "path": "public/gamecn/icons/gamecn-theme.png", "type": "registry:file", "target": "public/gamecn/icons/gamecn-theme.png" }, { "path": "public/gamecn/icons/gamecn-logo.png", "type": "registry:file", "target": "public/gamecn/icons/gamecn-logo.png" }, { "path": "public/gamecn/themes/rpg/emblem.png", "type": "registry:file", "target": "public/gamecn/themes/rpg/emblem.png" }, { "path": "public/gamecn/themes/rpg/texture.png", "type": "registry:file", "target": "public/gamecn/themes/rpg/texture.png" }, { "path": "public/gamecn/themes/cyberpunk/emblem.png", "type": "registry:file", "target": "public/gamecn/themes/cyberpunk/emblem.png" }, { "path": "public/gamecn/themes/cyberpunk/texture.png", "type": "registry:file", "target": "public/gamecn/themes/cyberpunk/texture.png" }, { "path": "public/gamecn/themes/horror/emblem.png", "type": "registry:file", "target": "public/gamecn/themes/horror/emblem.png" }, { "path": "public/gamecn/themes/horror/texture.png", "type": "registry:file", "target": "public/gamecn/themes/horror/texture.png" }, { "path": "public/gamecn/themes/sci-fi/emblem.png", "type": "registry:file", "target": "public/gamecn/themes/sci-fi/emblem.png" }, { "path": "public/gamecn/themes/sci-fi/texture.png", "type": "registry:file", "target": "public/gamecn/themes/sci-fi/texture.png" }, { "path": "public/gamecn/themes/fantasy-parchment/emblem.png", "type": "registry:file", "target": "public/gamecn/themes/fantasy-parchment/emblem.png" }, { "path": "public/gamecn/themes/fantasy-parchment/texture.png", "type": "registry:file", "target": "public/gamecn/themes/fantasy-parchment/texture.png" } ], "css": { ":root, [data-gamecn-theme]": { "--gamecn-font-display": "\"Saira\", ui-sans-serif, system-ui, sans-serif", "--gamecn-font-ui": "\"Atkinson Hyperlegible Next\", ui-sans-serif, system-ui, sans-serif", "--gamecn-radius": "0.5rem", "--gamecn-radius-sm": "0.32rem", "--gamecn-frame-shape": "polygon(14px 0, calc(100% - 14px) 0, 100% 14px, 100% calc(100% - 14px), calc(100% - 14px) 100%, 14px 100%, 0 calc(100% - 14px), 0 14px)", "--gamecn-control-shape": "polygon(8px 0, calc(100% - 8px) 0, 100% 8px, 100% calc(100% - 8px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 8px), 0 8px)", "--gamecn-slot-shape": "var(--gamecn-control-shape)", "--gamecn-frame-fill": "linear-gradient(180deg, color-mix(in oklch, var(--card) 86%, oklch(0.18 0.026 118)), color-mix(in oklch, var(--card) 78%, black))", "--gamecn-frame-overlay": "linear-gradient(135deg, color-mix(in oklch, white 7%, transparent), transparent 42%)", "--gamecn-frame-texture": "var(--gamecn-texture, none)", "--gamecn-frame-texture-opacity": "0.08", "--gamecn-frame-border": "color-mix(in oklch, var(--primary) 44%, var(--border))", "--gamecn-frame-border-strong": "color-mix(in oklch, var(--primary) 66%, var(--border))", "--gamecn-frame-inner-border": "color-mix(in oklch, var(--gamecn-frame-border-strong) 45%, transparent)", "--gamecn-frame-shadow": "0 22px 58px color-mix(in oklch, black 48%, transparent), inset 0 1px 0 color-mix(in oklch, white 12%, transparent)", "--gamecn-frame-inset": "4px", "--gamecn-ornament-strip": "linear-gradient(90deg, transparent 0 14px, var(--gamecn-frame-border-strong) 14px 48px, transparent 48px calc(100% - 48px), var(--gamecn-frame-border-strong) calc(100% - 48px) calc(100% - 14px), transparent calc(100% - 14px))", "--gamecn-ornament-corner": "radial-gradient(circle, color-mix(in oklch, var(--gamecn-frame-border-strong) 80%, white) 0 2px, transparent 2.5px)", "--gamecn-control-primary-fill": "linear-gradient(180deg, color-mix(in oklch, var(--primary) 82%, white), color-mix(in oklch, var(--primary) 82%, black))", "--gamecn-control-secondary-fill": "linear-gradient(180deg, color-mix(in oklch, var(--secondary) 86%, white), color-mix(in oklch, var(--secondary) 86%, black))", "--gamecn-control-danger-fill": "linear-gradient(180deg, color-mix(in oklch, var(--destructive) 82%, white), color-mix(in oklch, var(--destructive) 84%, black))", "--gamecn-control-text": "var(--primary-foreground)", "--gamecn-control-secondary-text": "var(--secondary-foreground)", "--gamecn-control-border": "color-mix(in oklch, var(--gamecn-frame-border-strong) 82%, var(--border))", "--gamecn-control-shadow": "0 11px 26px color-mix(in oklch, black 36%, transparent), inset 0 1px 0 color-mix(in oklch, white 20%, transparent), inset 0 -3px 0 color-mix(in oklch, black 22%, transparent)", "--gamecn-control-bevel": "linear-gradient(180deg, color-mix(in oklch, white 16%, transparent), transparent 42%, color-mix(in oklch, black 16%, transparent))", "--gamecn-control-focus": "0 0 0 2px color-mix(in oklch, var(--gamecn-frame-border-strong) 36%, transparent), 0 0 24px color-mix(in oklch, var(--gamecn-frame-border-strong) 24%, transparent)", "--gamecn-menu-focus": "linear-gradient(90deg, color-mix(in oklch, var(--primary) 18%, transparent), transparent 82%)", "--gamecn-chip-fill": "linear-gradient(180deg, color-mix(in oklch, var(--card) 80%, var(--primary)), color-mix(in oklch, var(--background) 86%, black))", "--gamecn-icon-well-fill": "var(--gamecn-chip-fill)", "--gamecn-meter-track-fill": "linear-gradient(180deg, color-mix(in oklch, black 35%, var(--background)), color-mix(in oklch, var(--background) 86%, black))", "--gamecn-meter-ticks": "repeating-linear-gradient(90deg, color-mix(in oklch, black 52%, transparent) 0 1px, transparent 1px 10px)", "--gamecn-meter-cap": "linear-gradient(90deg, var(--gamecn-frame-border-strong), transparent 28%, transparent 72%, var(--gamecn-frame-border-strong))", "--gamecn-meter-fill": "var(--gamecn-meter-health)", "--gamecn-slot-fill": "linear-gradient(180deg, color-mix(in oklch, var(--card) 86%, black), color-mix(in oklch, var(--background) 76%, black))", "--gamecn-slot-hover": "linear-gradient(180deg, color-mix(in oklch, var(--primary) 16%, var(--card)), color-mix(in oklch, var(--background) 78%, black))", "--gamecn-slot-selected": "color-mix(in oklch, var(--primary) 42%, transparent)", "--gamecn-paper-fill": "linear-gradient(180deg, color-mix(in oklch, oklch(0.84 0.04 82) 75%, var(--card)), color-mix(in oklch, oklch(0.71 0.04 75) 42%, var(--card)))", "--gamecn-paper-text": "oklch(0.24 0.045 66)", "--gamecn-paper-muted": "oklch(0.42 0.045 66)", "--gamecn-hud-fill": "linear-gradient(180deg, color-mix(in oklch, var(--card) 82%, black), color-mix(in oklch, var(--background) 82%, black))", "--gamecn-distress-overlay": "none", "--gamecn-texture-opacity": "0.08", "--gamecn-emblem": "url(\"/gamecn/themes/rpg/emblem.png\")", "--gamecn-texture": "url(\"/gamecn/themes/rpg/texture.png\")", "--gamecn-panel-bg": "var(--gamecn-frame-fill)", "--gamecn-panel-muted": "var(--gamecn-chip-fill)", "--gamecn-border": "var(--gamecn-frame-border)", "--gamecn-border-strong": "var(--gamecn-frame-border-strong)", "--gamecn-shadow-panel": "var(--gamecn-frame-shadow)", "--gamecn-shadow-control": "var(--gamecn-control-shadow)", "--gamecn-glow-primary": "0 0 26px color-mix(in oklch, var(--primary) 34%, transparent)", "--gamecn-glow-danger": "0 0 26px color-mix(in oklch, var(--destructive) 34%, transparent)", "--gamecn-icon-glow": "0 0 16px color-mix(in oklch, var(--primary) 48%, transparent)", "--gamecn-clip-sm": "var(--gamecn-control-shape)", "--gamecn-clip-md": "var(--gamecn-frame-shape)", "--gamecn-clip-lg": "var(--gamecn-frame-shape)", "--gamecn-meter-health": "linear-gradient(90deg, oklch(0.74 0.18 28), oklch(0.72 0.16 35), oklch(0.62 0.14 24))", "--gamecn-meter-mana": "linear-gradient(90deg, oklch(0.62 0.16 245), oklch(0.7 0.15 222), oklch(0.75 0.12 198))", "--gamecn-meter-stamina": "linear-gradient(90deg, oklch(0.73 0.15 84), oklch(0.74 0.15 67), oklch(0.62 0.12 52))", "--gamecn-meter-threat": "linear-gradient(90deg, oklch(0.75 0.2 32), oklch(0.58 0.22 25), oklch(0.43 0.18 22))", "--gamecn-resource-focus": "oklch(0.74 0.14 210)", "--gamecn-resource-rage": "oklch(0.67 0.18 25)", "--gamecn-resource-shield": "oklch(0.75 0.12 230)", "--gamecn-resource-combo": "oklch(0.78 0.14 87)", "--gamecn-rarity-common": "color-mix(in oklch, var(--border) 82%, var(--foreground))", "--gamecn-rarity-rare": "oklch(0.72 0.13 205)", "--gamecn-rarity-epic": "oklch(0.69 0.17 310)", "--gamecn-rarity-legendary": "oklch(0.79 0.16 78)", "--gamecn-tone-success": "oklch(0.72 0.16 145)", "--gamecn-tone-warning": "oklch(0.8 0.15 75)", "--gamecn-tone-danger": "var(--destructive)", "--gamecn-tone-arcane": "oklch(0.68 0.17 298)", "--gamecn-tone-info": "oklch(0.7 0.14 218)" }, "[data-gamecn-theme=\"rpg\"]": { "--gamecn-font-display": "\"Cinzel\", \"Saira\", serif", "--gamecn-font-ui": "\"Saira\", ui-sans-serif, system-ui, sans-serif", "--gamecn-radius": "0.48rem", "--gamecn-radius-sm": "0.28rem", "--gamecn-frame-shape": "polygon(22px 0, calc(100% - 22px) 0, 100% 22px, 100% calc(100% - 22px), calc(100% - 22px) 100%, 22px 100%, 0 calc(100% - 22px), 0 22px)", "--gamecn-control-shape": "polygon(16px 0, calc(100% - 16px) 0, 100% 50%, calc(100% - 16px) 100%, 16px 100%, 0 50%)", "--gamecn-frame-fill": "radial-gradient(circle at 50% 0, color-mix(in oklch, oklch(0.82 0.13 84) 18%, transparent), transparent 32%), linear-gradient(180deg, oklch(0.17 0.018 78), oklch(0.1 0.014 76) 58%, oklch(0.075 0.012 76))", "--gamecn-frame-overlay": "radial-gradient(circle at 50% 0, color-mix(in oklch, oklch(0.72 0.16 174) 12%, transparent), transparent 22%), linear-gradient(90deg, transparent, color-mix(in oklch, oklch(0.83 0.14 82) 8%, transparent), transparent)", "--gamecn-frame-border": "oklch(0.67 0.12 73)", "--gamecn-frame-border-strong": "oklch(0.86 0.14 83)", "--gamecn-frame-inner-border": "color-mix(in oklch, oklch(0.86 0.14 83) 72%, transparent)", "--gamecn-frame-shadow": "0 20px 48px color-mix(in oklch, black 62%, transparent), inset 0 0 0 1px color-mix(in oklch, oklch(0.96 0.08 91) 28%, transparent), inset 0 3px 0 color-mix(in oklch, white 10%, transparent), inset 0 -5px 0 color-mix(in oklch, black 32%, transparent)", "--gamecn-frame-inset": "5px", "--gamecn-ornament-strip": "linear-gradient(90deg, transparent 0 28px, oklch(0.7 0.12 73) 28px calc(50% - 18px), transparent calc(50% - 18px) calc(50% + 18px), oklch(0.7 0.12 73) calc(50% + 18px) calc(100% - 28px), transparent calc(100% - 28px))", "--gamecn-ornament-corner": "radial-gradient(circle at center, oklch(0.76 0.15 185) 0 3px, oklch(0.88 0.14 84) 3.5px 5px, transparent 5.5px)", "--gamecn-control-primary-fill": "linear-gradient(180deg, oklch(0.55 0.17 28), oklch(0.33 0.12 24) 58%, oklch(0.22 0.08 25))", "--gamecn-control-secondary-fill": "linear-gradient(180deg, oklch(0.36 0.09 190), oklch(0.22 0.06 186) 60%, oklch(0.12 0.03 190))", "--gamecn-control-danger-fill": "linear-gradient(180deg, oklch(0.52 0.18 27), oklch(0.26 0.09 24))", "--gamecn-control-text": "oklch(0.94 0.05 86)", "--gamecn-control-secondary-text": "oklch(0.91 0.08 89)", "--gamecn-control-border": "oklch(0.84 0.14 82)", "--gamecn-chip-fill": "linear-gradient(180deg, oklch(0.18 0.02 82), oklch(0.09 0.014 76))", "--gamecn-icon-well-fill": "radial-gradient(circle at 50% 30%, color-mix(in oklch, oklch(0.74 0.14 178) 20%, transparent), transparent 46%), linear-gradient(180deg, oklch(0.19 0.02 82), oklch(0.08 0.014 74))", "--gamecn-menu-focus": "linear-gradient(90deg, color-mix(in oklch, oklch(0.84 0.14 82) 28%, transparent), color-mix(in oklch, oklch(0.32 0.08 190) 58%, transparent))", "--gamecn-meter-track-fill": "linear-gradient(180deg, oklch(0.13 0.017 78), oklch(0.07 0.012 76))", "--gamecn-meter-cap": "linear-gradient(90deg, oklch(0.84 0.14 82), transparent 14%, transparent 86%, oklch(0.84 0.14 82))", "--gamecn-slot-fill": "radial-gradient(circle at 50% 12%, color-mix(in oklch, oklch(0.86 0.14 82) 9%, transparent), transparent 48%), linear-gradient(180deg, oklch(0.16 0.017 80), oklch(0.07 0.011 77))", "--gamecn-slot-hover": "radial-gradient(circle at 50% 8%, color-mix(in oklch, oklch(0.74 0.14 178) 20%, transparent), transparent 52%), var(--gamecn-slot-fill)", "--gamecn-paper-fill": "linear-gradient(180deg, oklch(0.83 0.045 82), oklch(0.72 0.043 75))", "--gamecn-paper-text": "oklch(0.25 0.045 63)", "--gamecn-paper-muted": "oklch(0.42 0.05 68)", "--gamecn-texture-opacity": "0.13", "--gamecn-emblem": "url(\"/gamecn/themes/rpg/emblem.png\")", "--gamecn-texture": "url(\"/gamecn/themes/rpg/texture.png\")" }, "[data-gamecn-theme=\"fantasy-parchment\"]": { "--gamecn-font-display": "\"MedievalSharp\", \"Cinzel\", serif", "--gamecn-font-ui": "\"Cinzel\", serif", "--gamecn-radius": "0.3rem", "--gamecn-radius-sm": "0.18rem", "--gamecn-frame-shape": "polygon(12px 0, calc(100% - 12px) 0, 100% 12px, 100% calc(100% - 12px), calc(100% - 12px) 100%, 12px 100%, 0 calc(100% - 12px), 0 12px)", "--gamecn-control-shape": "polygon(8px 0, calc(100% - 8px) 0, 100% 8px, 100% calc(100% - 8px), calc(100% - 8px) 100%, 8px 100%, 0 calc(100% - 8px), 0 8px)", "--gamecn-frame-fill": "linear-gradient(180deg, oklch(0.18 0.018 64), oklch(0.1 0.014 58))", "--gamecn-frame-overlay": "radial-gradient(circle at 12% 0, color-mix(in oklch, oklch(0.55 0.11 34) 22%, transparent), transparent 36%), repeating-linear-gradient(0deg, color-mix(in oklch, white 5%, transparent) 0 1px, transparent 1px 8px)", "--gamecn-frame-border": "oklch(0.43 0.055 62)", "--gamecn-frame-border-strong": "oklch(0.65 0.08 76)", "--gamecn-frame-inner-border": "color-mix(in oklch, oklch(0.76 0.08 82) 45%, transparent)", "--gamecn-frame-shadow": "0 18px 38px color-mix(in oklch, black 58%, transparent), inset 0 0 0 1px color-mix(in oklch, white 9%, transparent), inset 0 -4px 0 color-mix(in oklch, black 32%, transparent)", "--gamecn-ornament-strip": "repeating-linear-gradient(90deg, color-mix(in oklch, oklch(0.68 0.08 78) 68%, transparent) 0 6px, transparent 6px 16px)", "--gamecn-ornament-corner": "radial-gradient(circle, oklch(0.74 0.1 78) 0 2px, transparent 3px)", "--gamecn-control-primary-fill": "linear-gradient(180deg, oklch(0.36 0.095 28), oklch(0.2 0.055 28))", "--gamecn-control-secondary-fill": "linear-gradient(180deg, oklch(0.27 0.028 62), oklch(0.14 0.02 58))", "--gamecn-control-danger-fill": "linear-gradient(180deg, oklch(0.36 0.1 28), oklch(0.17 0.05 28))", "--gamecn-control-text": "oklch(0.9 0.06 82)", "--gamecn-control-secondary-text": "oklch(0.84 0.05 78)", "--gamecn-control-border": "oklch(0.59 0.07 75)", "--gamecn-control-shadow": "0 10px 24px color-mix(in oklch, black 54%, transparent), inset 0 1px 0 color-mix(in oklch, white 13%, transparent), inset 0 -3px 0 color-mix(in oklch, black 35%, transparent)", "--gamecn-chip-fill": "linear-gradient(180deg, oklch(0.72 0.046 78), oklch(0.52 0.04 68))", "--gamecn-icon-well-fill": "linear-gradient(180deg, oklch(0.26 0.026 60), oklch(0.12 0.017 58))", "--gamecn-menu-focus": "linear-gradient(90deg, color-mix(in oklch, oklch(0.42 0.1 28) 58%, transparent), transparent 82%)", "--gamecn-meter-track-fill": "linear-gradient(180deg, oklch(0.13 0.016 58), oklch(0.08 0.012 58))", "--gamecn-slot-fill": "linear-gradient(180deg, oklch(0.24 0.022 58), oklch(0.1 0.014 57))", "--gamecn-slot-hover": "linear-gradient(180deg, color-mix(in oklch, oklch(0.45 0.08 32) 32%, oklch(0.24 0.022 58)), oklch(0.1 0.014 57))", "--gamecn-paper-fill": "radial-gradient(circle at 100% 0, color-mix(in oklch, oklch(0.58 0.08 63) 12%, transparent), transparent 36%), linear-gradient(180deg, oklch(0.8 0.046 78), oklch(0.67 0.043 73))", "--gamecn-paper-text": "oklch(0.21 0.04 62)", "--gamecn-paper-muted": "oklch(0.39 0.044 64)", "--gamecn-texture-opacity": "0.18", "--gamecn-emblem": "url(\"/gamecn/themes/fantasy-parchment/emblem.png\")", "--gamecn-texture": "url(\"/gamecn/themes/fantasy-parchment/texture.png\")" }, "[data-gamecn-theme=\"sci-fi\"]": { "--gamecn-font-display": "\"Orbitron\", \"Saira\", ui-sans-serif, system-ui", "--gamecn-font-ui": "\"Rajdhani\", ui-sans-serif, system-ui", "--gamecn-radius": "0.22rem", "--gamecn-radius-sm": "0.16rem", "--gamecn-frame-shape": "polygon(18px 0, calc(100% - 18px) 0, 100% 18px, 100% calc(100% - 18px), calc(100% - 18px) 100%, 18px 100%, 0 calc(100% - 18px), 0 18px)", "--gamecn-control-shape": "polygon(10px 0, calc(100% - 10px) 0, 100% 10px, 100% calc(100% - 10px), calc(100% - 10px) 100%, 10px 100%, 0 calc(100% - 10px), 0 10px)", "--gamecn-frame-fill": "linear-gradient(180deg, color-mix(in oklch, oklch(0.13 0.044 235) 74%, transparent), oklch(0.065 0.03 236))", "--gamecn-frame-overlay": "linear-gradient(90deg, color-mix(in oklch, oklch(0.76 0.12 225) 16%, transparent) 0 1px, transparent 1px), linear-gradient(0deg, color-mix(in oklch, oklch(0.76 0.12 225) 10%, transparent) 0 1px, transparent 1px)", "--gamecn-frame-border": "oklch(0.62 0.14 224)", "--gamecn-frame-border-strong": "oklch(0.82 0.12 205)", "--gamecn-frame-inner-border": "color-mix(in oklch, oklch(0.82 0.12 205) 55%, transparent)", "--gamecn-frame-shadow": "0 0 0 1px color-mix(in oklch, oklch(0.66 0.15 224) 35%, transparent), 0 0 28px color-mix(in oklch, oklch(0.72 0.15 220) 22%, transparent), inset 0 1px 0 color-mix(in oklch, white 13%, transparent)", "--gamecn-ornament-strip": "linear-gradient(90deg, transparent, oklch(0.78 0.14 205) 18%, transparent 28%, transparent 72%, oklch(0.78 0.14 205) 82%, transparent)", "--gamecn-ornament-corner": "linear-gradient(90deg, oklch(0.78 0.14 205), transparent 70%)", "--gamecn-control-primary-fill": "linear-gradient(180deg, oklch(0.55 0.18 235), oklch(0.36 0.14 232))", "--gamecn-control-secondary-fill": "linear-gradient(180deg, color-mix(in oklch, oklch(0.12 0.055 235) 72%, transparent), color-mix(in oklch, oklch(0.07 0.035 236) 92%, transparent))", "--gamecn-control-danger-fill": "linear-gradient(180deg, oklch(0.62 0.18 24), oklch(0.38 0.13 23))", "--gamecn-control-text": "oklch(0.95 0.035 220)", "--gamecn-control-secondary-text": "oklch(0.87 0.055 220)", "--gamecn-control-border": "oklch(0.74 0.13 210)", "--gamecn-control-shadow": "0 0 0 1px color-mix(in oklch, oklch(0.72 0.14 220) 24%, transparent), 0 0 20px color-mix(in oklch, oklch(0.72 0.14 220) 20%, transparent), inset 0 1px 0 color-mix(in oklch, white 18%, transparent)", "--gamecn-control-bevel": "linear-gradient(180deg, color-mix(in oklch, white 18%, transparent), transparent 50%)", "--gamecn-chip-fill": "linear-gradient(180deg, color-mix(in oklch, oklch(0.16 0.045 235) 86%, transparent), color-mix(in oklch, oklch(0.07 0.03 238) 94%, transparent))", "--gamecn-icon-well-fill": "radial-gradient(circle at 50% 50%, color-mix(in oklch, oklch(0.74 0.14 210) 18%, transparent), transparent 52%), var(--gamecn-chip-fill)", "--gamecn-menu-focus": "linear-gradient(90deg, color-mix(in oklch, oklch(0.74 0.14 210) 28%, transparent), transparent 78%)", "--gamecn-meter-track-fill": "linear-gradient(180deg, oklch(0.08 0.032 235), oklch(0.045 0.022 238))", "--gamecn-meter-cap": "linear-gradient(90deg, oklch(0.8 0.14 205), transparent 22%, transparent 78%, oklch(0.8 0.14 205))", "--gamecn-slot-fill": "linear-gradient(180deg, oklch(0.12 0.04 235), oklch(0.045 0.025 238))", "--gamecn-slot-hover": "radial-gradient(circle at 50% 0, color-mix(in oklch, oklch(0.7 0.16 218) 28%, transparent), transparent 54%), var(--gamecn-slot-fill)", "--gamecn-paper-fill": "linear-gradient(180deg, oklch(0.12 0.038 235), oklch(0.06 0.026 238))", "--gamecn-paper-text": "oklch(0.92 0.04 220)", "--gamecn-paper-muted": "oklch(0.72 0.045 220)", "--gamecn-texture-opacity": "0.05", "--gamecn-emblem": "url(\"/gamecn/themes/sci-fi/emblem.png\")", "--gamecn-texture": "url(\"/gamecn/themes/sci-fi/texture.png\")" }, "[data-gamecn-theme=\"cyberpunk\"]": { "--gamecn-font-display": "\"Rajdhani\", \"Saira\", ui-sans-serif, system-ui", "--gamecn-font-ui": "\"Rajdhani\", ui-sans-serif, system-ui", "--gamecn-radius": "0.12rem", "--gamecn-radius-sm": "0.08rem", "--gamecn-frame-shape": "polygon(26px 0, 100% 0, 100% calc(100% - 10px), calc(100% - 34px) 100%, 0 100%, 0 26px)", "--gamecn-control-shape": "polygon(16px 0, 100% 0, 100% calc(100% - 6px), calc(100% - 22px) 100%, 0 100%, 0 16px)", "--gamecn-frame-fill": "linear-gradient(180deg, oklch(0.08 0.035 240), oklch(0.035 0.028 245))", "--gamecn-frame-overlay": "repeating-linear-gradient(180deg, color-mix(in oklch, oklch(0.83 0.21 195) 12%, transparent) 0 1px, transparent 1px 5px), linear-gradient(90deg, color-mix(in oklch, oklch(0.74 0.25 335) 15%, transparent), transparent 44%, color-mix(in oklch, oklch(0.83 0.21 195) 13%, transparent))", "--gamecn-frame-border": "oklch(0.83 0.2 195)", "--gamecn-frame-border-strong": "oklch(0.76 0.26 333)", "--gamecn-frame-inner-border": "color-mix(in oklch, oklch(0.83 0.2 195) 42%, transparent)", "--gamecn-frame-shadow": "0 0 0 1px color-mix(in oklch, oklch(0.83 0.2 195) 35%, transparent), 0 0 32px color-mix(in oklch, oklch(0.76 0.26 333) 28%, transparent), inset 0 1px 0 color-mix(in oklch, oklch(0.83 0.2 195) 22%, transparent)", "--gamecn-ornament-strip": "repeating-linear-gradient(90deg, oklch(0.76 0.26 333) 0 10px, transparent 10px 16px, oklch(0.83 0.2 195) 16px 22px, transparent 22px 34px)", "--gamecn-ornament-corner": "linear-gradient(90deg, oklch(0.76 0.26 333), transparent 70%)", "--gamecn-control-primary-fill": "linear-gradient(90deg, oklch(0.52 0.24 334), oklch(0.76 0.26 333))", "--gamecn-control-secondary-fill": "linear-gradient(90deg, color-mix(in oklch, oklch(0.08 0.035 240) 80%, oklch(0.83 0.2 195)), color-mix(in oklch, oklch(0.035 0.028 245) 72%, oklch(0.83 0.2 195)))", "--gamecn-control-danger-fill": "linear-gradient(90deg, oklch(0.7 0.24 25), oklch(0.76 0.26 333))", "--gamecn-control-text": "oklch(0.08 0.032 240)", "--gamecn-control-secondary-text": "oklch(0.84 0.14 195)", "--gamecn-control-border": "oklch(0.83 0.2 195)", "--gamecn-control-shadow": "0 0 0 1px color-mix(in oklch, oklch(0.83 0.2 195) 35%, transparent), 0 0 24px color-mix(in oklch, oklch(0.76 0.26 333) 30%, transparent), inset 0 1px 0 color-mix(in oklch, white 16%, transparent)", "--gamecn-control-bevel": "repeating-linear-gradient(115deg, color-mix(in oklch, black 25%, transparent) 0 2px, transparent 2px 8px), linear-gradient(180deg, color-mix(in oklch, white 12%, transparent), transparent 46%)", "--gamecn-chip-fill": "linear-gradient(180deg, color-mix(in oklch, oklch(0.12 0.05 235) 82%, transparent), color-mix(in oklch, black 74%, oklch(0.08 0.035 240)))", "--gamecn-icon-well-fill": "radial-gradient(circle at 50% 0, color-mix(in oklch, oklch(0.76 0.26 333) 24%, transparent), transparent 54%), var(--gamecn-chip-fill)", "--gamecn-menu-focus": "linear-gradient(90deg, color-mix(in oklch, oklch(0.76 0.26 333) 34%, transparent), color-mix(in oklch, oklch(0.83 0.2 195) 18%, transparent), transparent 82%)", "--gamecn-meter-track-fill": "linear-gradient(180deg, oklch(0.045 0.026 245), oklch(0.022 0.02 248))", "--gamecn-meter-cap": "linear-gradient(90deg, oklch(0.76 0.26 333), transparent 18%, transparent 82%, oklch(0.83 0.2 195))", "--gamecn-slot-fill": "repeating-linear-gradient(135deg, color-mix(in oklch, oklch(0.83 0.2 195) 10%, transparent) 0 2px, transparent 2px 9px), linear-gradient(180deg, oklch(0.09 0.036 240), oklch(0.032 0.023 245))", "--gamecn-slot-hover": "radial-gradient(circle at 100% 0, color-mix(in oklch, oklch(0.76 0.26 333) 28%, transparent), transparent 54%), var(--gamecn-slot-fill)", "--gamecn-paper-fill": "linear-gradient(180deg, oklch(0.08 0.035 240), oklch(0.035 0.028 245))", "--gamecn-paper-text": "oklch(0.84 0.11 198)", "--gamecn-paper-muted": "oklch(0.64 0.09 198)", "--gamecn-texture-opacity": "0.06", "--gamecn-emblem": "url(\"/gamecn/themes/cyberpunk/emblem.png\")", "--gamecn-texture": "url(\"/gamecn/themes/cyberpunk/texture.png\")" }, "[data-gamecn-theme=\"horror\"]": { "--gamecn-font-display": "\"Staatliches\", \"Saira\", ui-sans-serif, system-ui", "--gamecn-font-ui": "\"Rajdhani\", ui-sans-serif, system-ui", "--gamecn-radius": "0.16rem", "--gamecn-radius-sm": "0.08rem", "--gamecn-frame-shape": "polygon(14px 0, 100% 0, 100% calc(100% - 18px), calc(100% - 12px) 100%, 0 100%, 0 12px)", "--gamecn-control-shape": "polygon(9px 0, 100% 0, 100% calc(100% - 9px), calc(100% - 10px) 100%, 0 100%, 0 9px)", "--gamecn-frame-fill": "linear-gradient(180deg, oklch(0.16 0.018 70), oklch(0.08 0.014 65))", "--gamecn-frame-overlay": "repeating-linear-gradient(100deg, color-mix(in oklch, oklch(0.72 0.12 70) 10%, transparent) 0 1px, transparent 1px 13px), radial-gradient(circle at 0 0, color-mix(in oklch, oklch(0.55 0.15 38) 20%, transparent), transparent 32%)", "--gamecn-frame-border": "oklch(0.4 0.045 64)", "--gamecn-frame-border-strong": "oklch(0.68 0.12 55)", "--gamecn-frame-inner-border": "color-mix(in oklch, oklch(0.73 0.1 72) 28%, transparent)", "--gamecn-frame-shadow": "0 24px 62px color-mix(in oklch, black 70%, transparent), inset 0 0 0 1px color-mix(in oklch, white 7%, transparent), inset 0 -8px 20px color-mix(in oklch, black 35%, transparent)", "--gamecn-ornament-strip": "repeating-linear-gradient(115deg, oklch(0.7 0.14 73) 0 10px, oklch(0.22 0.028 62) 10px 20px, transparent 20px 28px)", "--gamecn-ornament-corner": "radial-gradient(circle, oklch(0.66 0.09 65) 0 2px, transparent 3px)", "--gamecn-control-primary-fill": "linear-gradient(180deg, oklch(0.34 0.065 115), oklch(0.2 0.038 104))", "--gamecn-control-secondary-fill": "linear-gradient(180deg, oklch(0.72 0.038 76), oklch(0.54 0.034 68))", "--gamecn-control-danger-fill": "linear-gradient(180deg, oklch(0.48 0.14 34), oklch(0.28 0.08 31))", "--gamecn-control-text": "oklch(0.88 0.05 78)", "--gamecn-control-secondary-text": "oklch(0.15 0.025 68)", "--gamecn-control-border": "oklch(0.58 0.07 65)", "--gamecn-control-shadow": "0 12px 26px color-mix(in oklch, black 62%, transparent), inset 0 1px 0 color-mix(in oklch, white 10%, transparent), inset 0 -4px 0 color-mix(in oklch, black 32%, transparent)", "--gamecn-control-bevel": "repeating-linear-gradient(170deg, color-mix(in oklch, black 18%, transparent) 0 2px, transparent 2px 9px), linear-gradient(180deg, color-mix(in oklch, white 10%, transparent), transparent 42%)", "--gamecn-chip-fill": "linear-gradient(180deg, oklch(0.22 0.022 65), oklch(0.11 0.016 62))", "--gamecn-icon-well-fill": "linear-gradient(180deg, oklch(0.24 0.022 65), oklch(0.1 0.014 62))", "--gamecn-menu-focus": "linear-gradient(90deg, color-mix(in oklch, oklch(0.65 0.12 70) 24%, transparent), color-mix(in oklch, oklch(0.5 0.13 35) 18%, transparent), transparent 82%)", "--gamecn-meter-track-fill": "linear-gradient(180deg, oklch(0.1 0.014 65), oklch(0.055 0.01 62))", "--gamecn-meter-cap": "repeating-linear-gradient(115deg, oklch(0.7 0.14 73) 0 8px, oklch(0.18 0.018 60) 8px 16px)", "--gamecn-slot-fill": "linear-gradient(180deg, oklch(0.18 0.017 65), oklch(0.08 0.012 62))", "--gamecn-slot-hover": "radial-gradient(circle at 100% 0, color-mix(in oklch, oklch(0.72 0.12 70) 18%, transparent), transparent 50%), var(--gamecn-slot-fill)", "--gamecn-paper-fill": "radial-gradient(circle at 0 0, color-mix(in oklch, oklch(0.64 0.08 70) 12%, transparent), transparent 36%), linear-gradient(180deg, oklch(0.72 0.038 76), oklch(0.55 0.034 70))", "--gamecn-paper-text": "oklch(0.15 0.026 64)", "--gamecn-paper-muted": "oklch(0.33 0.036 62)", "--gamecn-distress-overlay": "repeating-linear-gradient(165deg, transparent 0 9px, color-mix(in oklch, black 26%, transparent) 9px 11px), repeating-linear-gradient(90deg, color-mix(in oklch, oklch(0.72 0.12 70) 8%, transparent) 0 1px, transparent 1px 34px)", "--gamecn-texture-opacity": "0.2", "--gamecn-emblem": "url(\"/gamecn/themes/horror/emblem.png\")", "--gamecn-texture": "url(\"/gamecn/themes/horror/texture.png\")" }, ".gamecn-code .hljs-keyword, .gamecn-code .hljs-selector-tag, .gamecn-code .hljs-built_in": { "color": "color-mix(in oklch, var(--primary) 82%, var(--foreground))", "font-weight": "700" }, ".gamecn-code .hljs-string, .gamecn-code .hljs-attr, .gamecn-code .hljs-symbol": { "color": "color-mix(in oklch, var(--accent) 78%, var(--foreground))" }, ".gamecn-code .hljs-title, .gamecn-code .hljs-name, .gamecn-code .hljs-property": { "color": "color-mix(in oklch, var(--foreground) 78%, var(--primary))" }, ".gamecn-code .hljs-number, .gamecn-code .hljs-literal, .gamecn-code .hljs-variable": { "color": "color-mix(in oklch, var(--primary) 62%, var(--accent))" }, ".gamecn-code .hljs-comment, .gamecn-code .hljs-meta": { "color": "var(--muted-foreground)", "font-style": "italic" }, ".gamecn-code .hljs-punctuation, .gamecn-code .hljs-tag": { "color": "color-mix(in oklch, var(--foreground) 62%, var(--muted-foreground))" }, "[data-gamecn-theme]:is(.gamecn-frame, .gamecn-button, .gamecn-menu-trigger, .gamecn-close, .gamecn-action, .gamecn-badge, .gamecn-chip, .gamecn-icon-well, .gamecn-meter-track, .gamecn-slot), [data-gamecn-theme] :is(.gamecn-frame, .gamecn-button, .gamecn-menu-trigger, .gamecn-close, .gamecn-action, .gamecn-badge, .gamecn-chip, .gamecn-icon-well, .gamecn-meter-track, .gamecn-slot)": { "--font-display": "var(--gamecn-font-display)", "font-family": "var(--gamecn-font-ui)" }, ".gamecn-frame": { "isolation": "isolate", "overflow": "hidden", "border": "1px solid var(--gamecn-border, var(--gamecn-frame-border))", "border-radius": "var(--gamecn-radius)", "background": "var(--gamecn-frame-fill)", "box-shadow": "var(--gamecn-frame-shadow)", "clip-path": "var(--gamecn-frame-shape)" }, ".gamecn-frame:not(.fixed):not(.absolute):not(.sticky)": { "position": "relative" }, ".gamecn-frame-sm, .gamecn-frame-lg": { "clip-path": "var(--gamecn-frame-shape)" }, ".gamecn-frame::before": { "pointer-events": "none", "content": "\"\"", "position": "absolute", "inset": "0", "z-index": "0", "background-image": "var(--gamecn-distress-overlay), var(--gamecn-frame-overlay), var(--gamecn-frame-texture)", "background-size": "auto, auto, 180px 180px", "opacity": "var(--gamecn-frame-texture-opacity)" }, ".gamecn-frame::after": { "pointer-events": "none", "content": "\"\"", "position": "absolute", "inset": "var(--gamecn-frame-inset)", "z-index": "0", "border": "1px solid var(--gamecn-frame-inner-border)", "border-radius": "calc(var(--gamecn-radius) * 0.65)", "background-image": "var(--gamecn-ornament-corner)", "background-position": "top left, top right, bottom left, bottom right", "background-repeat": "no-repeat", "background-size": "42px 42px", "clip-path": "inherit" }, ".gamecn-frame > .gamecn-ornament": { "pointer-events": "none", "position": "absolute", "inset-inline": "0", "top": "0", "z-index": "2", "height": "4px", "background": "var(--gamecn-ornament-strip)" }, ".gamecn-frame > .gamecn-ornament::before, .gamecn-frame > .gamecn-ornament::after": { "content": "\"\"", "position": "absolute", "top": "0", "width": "48px", "height": "48px", "background": "var(--gamecn-ornament-corner)", "background-repeat": "no-repeat" }, ".gamecn-frame > .gamecn-ornament::before": { "left": "0" }, ".gamecn-frame > .gamecn-ornament::after": { "right": "0", "transform": "scaleX(-1)" }, ".gamecn-button, .gamecn-menu-trigger, .gamecn-close, .gamecn-action": { "position": "relative", "overflow": "hidden", "border-color": "var(--gamecn-control-border)", "border-radius": "var(--gamecn-radius-sm)", "background": "var(--gamecn-control-primary-fill)", "color": "var(--gamecn-control-text)", "box-shadow": "var(--gamecn-control-shadow)", "clip-path": "var(--gamecn-control-shape)", "text-shadow": "0 1px 0 color-mix(in oklch, black 38%, transparent)", "align-items": "center", "justify-content": "center", "min-height": "2.5rem", "line-height": "1.25" }, ".gamecn-button::before, .gamecn-menu-trigger::before, .gamecn-close::before, .gamecn-action::before": { "pointer-events": "none", "content": "\"\"", "position": "absolute", "inset": "0", "z-index": "0", "background": "var(--gamecn-control-bevel)" }, ".gamecn-button::after, .gamecn-menu-trigger::after, .gamecn-close::after, .gamecn-action::after": { "pointer-events": "none", "content": "\"\"", "position": "absolute", "inset": "3px", "z-index": "0", "border": "1px solid color-mix(in oklch, var(--gamecn-control-border) 52%, transparent)", "clip-path": "inherit" }, ".gamecn-button.bg-secondary, .gamecn-button.bg-card, .gamecn-menu-trigger, .gamecn-close": { "background": "var(--gamecn-control-secondary-fill)", "color": "var(--gamecn-control-secondary-text)" }, ".gamecn-action, .gamecn-button.text-white": { "background": "var(--gamecn-control-danger-fill)" }, ".gamecn-button > *, .gamecn-menu-trigger > *, .gamecn-close > *, .gamecn-action > *": { "position": "relative", "z-index": "1" }, ".gamecn-button:hover, .gamecn-menu-trigger:hover, .gamecn-action:hover, .gamecn-close:hover": { "box-shadow": "var(--gamecn-control-shadow), var(--gamecn-control-focus)" }, ".gamecn-badge, .gamecn-chip, .gamecn-icon-well": { "border-color": "var(--gamecn-border, var(--gamecn-frame-border))", "border-radius": "var(--gamecn-radius-sm)", "background": "var(--gamecn-chip-fill)", "box-shadow": "var(--gamecn-control-shadow)", "clip-path": "var(--gamecn-control-shape)" }, ".gamecn-icon-well": { "background": "var(--gamecn-icon-well-fill)" }, ".gamecn-header, .gamecn-footer": { "border-color": "var(--gamecn-frame-inner-border)", "background": "linear-gradient(90deg, color-mix(in oklch, var(--gamecn-frame-border-strong) 16%, transparent), transparent 74%)" }, ".gamecn-menu-item, .gamecn-list-item": { "border": "1px solid transparent", "border-radius": "var(--gamecn-radius-sm)", "clip-path": "var(--gamecn-control-shape)" }, ".gamecn-menu-item:focus, .gamecn-menu-item[data-highlighted], .gamecn-list-item:hover": { "border-color": "var(--gamecn-control-border)", "background": "var(--gamecn-menu-focus)", "color": "var(--foreground)" }, ".gamecn-meter-track": { "position": "relative", "overflow": "hidden", "border-color": "color-mix(in oklch, var(--gamecn-frame-border) 62%, var(--border))", "border-radius": "var(--gamecn-radius-sm)", "background": "var(--gamecn-meter-track-fill)", "box-shadow": "inset 0 2px 8px color-mix(in oklch, black 46%, transparent), var(--gamecn-control-shadow)", "clip-path": "var(--gamecn-control-shape)" }, ".gamecn-meter-track::after": { "pointer-events": "none", "content": "\"\"", "position": "absolute", "inset": "0", "background-image": "var(--gamecn-meter-ticks), var(--gamecn-meter-cap)", "background-size": "12px 100%, auto" }, ".gamecn-meter-fill": { "background-image": "var(--gamecn-meter-fill)", "box-shadow": "0 0 18px color-mix(in oklch, var(--gamecn-frame-border-strong) 34%, transparent), inset 0 1px 0 color-mix(in oklch, white 34%, transparent)" }, ".gamecn-meter-health": { "background-image": "var(--gamecn-meter-health)" }, ".gamecn-meter-mana": { "background-image": "var(--gamecn-meter-mana)" }, ".gamecn-meter-stamina": { "background-image": "var(--gamecn-meter-stamina)" }, ".gamecn-meter-threat": { "background-image": "var(--gamecn-meter-threat)" }, ".gamecn-meter-ticks": { "background-image": "var(--gamecn-meter-ticks)" }, ".gamecn-hud": { "background": "var(--gamecn-hud-fill)" }, ".gamecn-slot": { "border-color": "var(--gamecn-border, var(--gamecn-frame-border))", "background": "var(--gamecn-slot-fill)", "box-shadow": "var(--gamecn-control-shadow)", "clip-path": "var(--gamecn-slot-shape)" }, ".gamecn-slot:hover:not(:disabled)": { "background": "var(--gamecn-slot-hover)", "box-shadow": "var(--gamecn-control-shadow), var(--gamecn-control-focus)" }, ".gamecn-paper": { "background": "var(--gamecn-paper-fill)", "color": "var(--gamecn-paper-text)" }, ".gamecn-paper :is(h1, h2, h3, h4, .text-foreground)": { "color": "var(--gamecn-paper-text)" }, ".gamecn-paper .text-muted-foreground, .gamecn-paper .text-secondary-foreground": { "color": "var(--gamecn-paper-muted)" }, "[data-gamecn-theme=\"rpg\"] .gamecn-frame::after": { "border-width": "2px", "box-shadow": "inset 0 0 0 1px color-mix(in oklch, oklch(0.97 0.08 86) 22%, transparent)" }, "[data-gamecn-theme=\"rpg\"] .gamecn-button, [data-gamecn-theme=\"rpg\"] .gamecn-menu-trigger, [data-gamecn-theme=\"rpg\"] .gamecn-action, [data-gamecn-theme=\"rpg\"] .gamecn-badge": { "letter-spacing": "0.08em" }, "[data-gamecn-theme=\"fantasy-parchment\"] .gamecn-frame::after": { "border-style": "double", "border-width": "3px" }, "[data-gamecn-theme=\"fantasy-parchment\"] .gamecn-paper, [data-gamecn-theme=\"fantasy-parchment\"] .gamecn-chip.bg-secondary": { "background": "var(--gamecn-paper-fill)" }, "[data-gamecn-theme=\"fantasy-parchment\"] .gamecn-button, [data-gamecn-theme=\"fantasy-parchment\"] .gamecn-menu-trigger, [data-gamecn-theme=\"fantasy-parchment\"] .gamecn-action": { "text-transform": "uppercase" }, "[data-gamecn-theme=\"sci-fi\"] .gamecn-frame::before, [data-gamecn-theme=\"sci-fi\"] .gamecn-slot::before": { "background-size": "28px 28px, 28px 28px, 180px 180px" }, "[data-gamecn-theme=\"sci-fi\"] .gamecn-button, [data-gamecn-theme=\"sci-fi\"] .gamecn-menu-trigger, [data-gamecn-theme=\"sci-fi\"] .gamecn-action, [data-gamecn-theme=\"sci-fi\"] .gamecn-menu-item": { "letter-spacing": "0.08em", "text-transform": "uppercase" }, "[data-gamecn-theme=\"cyberpunk\"] .gamecn-frame::after, [data-gamecn-theme=\"cyberpunk\"] .gamecn-meter-track::after": { "background-image": "repeating-linear-gradient(180deg, transparent 0 4px, color-mix(in oklch, var(--gamecn-frame-border-strong) 22%, transparent) 4px 5px), var(--gamecn-ornament-corner)" }, "[data-gamecn-theme=\"cyberpunk\"] .gamecn-button, [data-gamecn-theme=\"cyberpunk\"] .gamecn-menu-trigger, [data-gamecn-theme=\"cyberpunk\"] .gamecn-action, [data-gamecn-theme=\"cyberpunk\"] .gamecn-menu-item": { "letter-spacing": "0.16em", "text-transform": "uppercase" }, "[data-gamecn-theme=\"horror\"] .gamecn-frame, [data-gamecn-theme=\"horror\"] .gamecn-button, [data-gamecn-theme=\"horror\"] .gamecn-menu-trigger, [data-gamecn-theme=\"horror\"] .gamecn-chip, [data-gamecn-theme=\"horror\"] .gamecn-badge, [data-gamecn-theme=\"horror\"] .gamecn-icon-well, [data-gamecn-theme=\"horror\"] .gamecn-slot": { "filter": "saturate(0.86) contrast(1.08)" }, "[data-gamecn-theme=\"horror\"] .gamecn-frame::after": { "border-style": "dashed", "box-shadow": "inset 0 0 24px color-mix(in oklch, black 36%, transparent)" }, "[data-gamecn-theme=\"horror\"] .gamecn-button, [data-gamecn-theme=\"horror\"] .gamecn-menu-trigger, [data-gamecn-theme=\"horror\"] .gamecn-action, [data-gamecn-theme=\"horror\"] .gamecn-menu-item": { "letter-spacing": "0.1em", "text-transform": "uppercase" }, "[data-gamecn-theme] .gamecn-frame .bg-primary": { "background": "var(--gamecn-frame-border-strong)" }, "[data-gamecn-theme] .gamecn-frame .text-primary": { "color": "var(--gamecn-frame-border-strong)" }, "[data-gamecn-theme] .gamecn-frame .border-primary, [data-gamecn-theme] .gamecn-frame .hover\\:border-primary:hover": { "border-color": "var(--gamecn-frame-border-strong)" }, ".gamecn-menu-item": { "min-height": "2.75rem", "padding-block": "0.625rem", "line-height": "1.35" }, ".gamecn-menu-item .gamecn-chip": { "display": "inline-flex", "min-height": "1.5rem", "align-items": "center", "padding": "0.25rem 0.5rem", "line-height": "1" } } }, { "name": "game-button", "type": "registry:ui", "title": "Game Button", "description": "A sharp command button for RPG actions, menus, and combat UI.", "dependencies": [ "class-variance-authority", "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-button/game-button.tsx", "type": "registry:ui", "target": "components/ui/game-button.tsx" }, { "path": "public/gamecn/icons/game-button.png", "type": "registry:file", "target": "public/gamecn/icons/game-button.png" } ], "categories": [ "foundation", "gaming" ] }, { "name": "game-badge", "type": "registry:ui", "title": "Game Badge", "description": "A compact status badge for rarity, threat, role, and buff metadata.", "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-badge/game-badge.tsx", "type": "registry:ui", "target": "components/ui/game-badge.tsx" }, { "path": "public/gamecn/icons/game-badge.png", "type": "registry:file", "target": "public/gamecn/icons/game-badge.png" } ], "categories": [ "foundation", "gaming" ] }, { "name": "game-panel", "type": "registry:ui", "title": "Game Panel", "description": "A framed panel primitive for game menus, HUD clusters, and overlays.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-panel/game-panel.tsx", "type": "registry:ui", "target": "components/ui/game-panel.tsx" }, { "path": "public/gamecn/icons/game-panel.png", "type": "registry:file", "target": "public/gamecn/icons/game-panel.png" } ], "categories": [ "foundation", "panel" ] }, { "name": "game-sidebar", "type": "registry:ui", "title": "Game Sidebar", "description": "A game-styled navigation rail for menus, campaign screens, and inventory shells.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-sidebar/game-sidebar.tsx", "type": "registry:ui", "target": "components/ui/game-sidebar.tsx" }, { "path": "public/gamecn/icons/game-sidebar.png", "type": "registry:file", "target": "public/gamecn/icons/game-sidebar.png" } ], "categories": [ "navigation", "gaming" ] }, { "name": "game-modal", "type": "registry:ui", "title": "Game Modal", "description": "A framed modal dialog for confirmations, quests, rewards, and system overlays.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-modal/game-modal.tsx", "type": "registry:ui", "target": "components/ui/game-modal.tsx" }, { "path": "public/gamecn/icons/game-modal.png", "type": "registry:file", "target": "public/gamecn/icons/game-modal.png" } ], "categories": [ "overlay", "gaming" ] }, { "name": "game-drawer", "type": "registry:ui", "title": "Game Drawer", "description": "A slide-in panel for inventory, quest logs, maps, and mobile menu shells.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-drawer/game-drawer.tsx", "type": "registry:ui", "target": "components/ui/game-drawer.tsx" }, { "path": "public/gamecn/icons/game-drawer.png", "type": "registry:file", "target": "public/gamecn/icons/game-drawer.png" } ], "categories": [ "overlay", "gaming" ] }, { "name": "game-dropdown", "type": "registry:ui", "title": "Game Dropdown", "description": "A compact action menu for inventory, loadout, and account controls.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-dropdown/game-dropdown.tsx", "type": "registry:ui", "target": "components/ui/game-dropdown.tsx" }, { "path": "public/gamecn/icons/game-dropdown.png", "type": "registry:file", "target": "public/gamecn/icons/game-dropdown.png" } ], "categories": [ "overlay", "gaming" ] }, { "name": "game-menu-bar", "type": "registry:ui", "title": "Game Menu Bar", "description": "A desktop-style game menu bar for pause screens, editors, and debug surfaces.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-menu-bar/game-menu-bar.tsx", "type": "registry:ui", "target": "components/ui/game-menu-bar.tsx" }, { "path": "public/gamecn/icons/game-menu-bar.png", "type": "registry:file", "target": "public/gamecn/icons/game-menu-bar.png" } ], "categories": [ "navigation", "gaming" ] }, { "name": "game-popover", "type": "registry:ui", "title": "Game Popover", "description": "A rich inspect popover for stats, item details, and map markers.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-popover/game-popover.tsx", "type": "registry:ui", "target": "components/ui/game-popover.tsx" }, { "path": "public/gamecn/icons/game-popover.png", "type": "registry:file", "target": "public/gamecn/icons/game-popover.png" } ], "categories": [ "overlay", "gaming" ] }, { "name": "game-tooltip", "type": "registry:ui", "title": "Game Tooltip", "description": "A compact hover and focus intel card for abilities, resources, and status effects.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-tooltip/game-tooltip.tsx", "type": "registry:ui", "target": "components/ui/game-tooltip.tsx" }, { "path": "public/gamecn/icons/game-tooltip.png", "type": "registry:file", "target": "public/gamecn/icons/game-tooltip.png" } ], "categories": [ "overlay", "gaming" ] }, { "name": "game-command-menu", "type": "registry:ui", "title": "Game Command Menu", "description": "A command palette surface for quick actions, menus, and debug shortcuts.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-command-menu/game-command-menu.tsx", "type": "registry:ui", "target": "components/ui/game-command-menu.tsx" }, { "path": "public/gamecn/icons/game-command-menu.png", "type": "registry:file", "target": "public/gamecn/icons/game-command-menu.png" } ], "categories": [ "navigation", "gaming" ] }, { "name": "game-tabs", "type": "registry:ui", "title": "Game Tabs", "description": "A framed tab system for loadout panels, quest panes, and settings screens.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-tabs/game-tabs.tsx", "type": "registry:ui", "target": "components/ui/game-tabs.tsx" }, { "path": "public/gamecn/icons/game-tabs.png", "type": "registry:file", "target": "public/gamecn/icons/game-tabs.png" } ], "categories": [ "navigation", "gaming" ] }, { "name": "game-accordion", "type": "registry:ui", "title": "Game Accordion", "description": "A collapsible section stack for quest details, settings groups, and codex entries.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-accordion/game-accordion.tsx", "type": "registry:ui", "target": "components/ui/game-accordion.tsx" }, { "path": "public/gamecn/icons/game-accordion.png", "type": "registry:file", "target": "public/gamecn/icons/game-accordion.png" } ], "categories": [ "navigation", "gaming" ] }, { "name": "game-alert-dialog", "type": "registry:ui", "title": "Game Alert Dialog", "description": "A critical confirmation dialog for destructive, irreversible, or high-cost actions.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-alert-dialog/game-alert-dialog.tsx", "type": "registry:ui", "target": "components/ui/game-alert-dialog.tsx" }, { "path": "public/gamecn/icons/game-alert-dialog.png", "type": "registry:file", "target": "public/gamecn/icons/game-alert-dialog.png" } ], "categories": [ "overlay", "gaming" ] }, { "name": "game-context-menu", "type": "registry:ui", "title": "Game Context Menu", "description": "A right-click action menu for inventory slots, maps, skill nodes, and party rows.", "dependencies": [ "radix-ui" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/game-context-menu/game-context-menu.tsx", "type": "registry:ui", "target": "components/ui/game-context-menu.tsx" }, { "path": "public/gamecn/icons/game-context-menu.png", "type": "registry:file", "target": "public/gamecn/icons/game-context-menu.png" } ], "categories": [ "overlay", "gaming" ] }, { "name": "health-bar", "type": "registry:ui", "title": "Health Bar", "description": "An accessible RPG meter for health, mana, stamina, and threat values.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/health-bar/health-bar.tsx", "type": "registry:ui", "target": "components/ui/health-bar.tsx" }, { "path": "public/gamecn/icons/health-bar.png", "type": "registry:file", "target": "public/gamecn/icons/health-bar.png" }, { "path": "public/gamecn/icons/resource-pips.png", "type": "registry:file", "target": "public/gamecn/icons/resource-pips.png" }, { "path": "public/gamecn/icons/status-effect-stack.png", "type": "registry:file", "target": "public/gamecn/icons/status-effect-stack.png" } ], "categories": [ "hud", "meter" ] }, { "name": "resource-pips", "type": "registry:ui", "title": "Resource Pips", "description": "Discrete resource indicators for combo points, focus, rage, and shields.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/resource-pips/resource-pips.tsx", "type": "registry:ui", "target": "components/ui/resource-pips.tsx" }, { "path": "public/gamecn/icons/resource-pips.png", "type": "registry:file", "target": "public/gamecn/icons/resource-pips.png" } ], "categories": [ "hud", "resource" ] }, { "name": "cooldown-radial", "type": "registry:ui", "title": "Cooldown Radial", "description": "A circular cooldown indicator for skills, abilities, and consumables.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/cooldown-radial/cooldown-radial.tsx", "type": "registry:ui", "target": "components/ui/cooldown-radial.tsx" }, { "path": "public/gamecn/icons/cooldown-radial.png", "type": "registry:file", "target": "public/gamecn/icons/cooldown-radial.png" } ], "categories": [ "hud", "cooldown" ] }, { "name": "ammo-counter", "type": "registry:ui", "title": "Ammo Counter", "description": "A high-readability ammo and reserve counter with critical state styling.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/ammo-counter/ammo-counter.tsx", "type": "registry:ui", "target": "components/ui/ammo-counter.tsx" }, { "path": "public/gamecn/icons/ammo-counter.png", "type": "registry:file", "target": "public/gamecn/icons/ammo-counter.png" } ], "categories": [ "hud", "counter" ] }, { "name": "status-effect-stack", "type": "registry:ui", "title": "Status Effect Stack", "description": "Buff and debuff icons with optional stacks and countdown timers.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/status-effect-stack/status-effect-stack.tsx", "type": "registry:ui", "target": "components/ui/status-effect-stack.tsx" }, { "path": "public/gamecn/icons/status-effect-stack.png", "type": "registry:file", "target": "public/gamecn/icons/status-effect-stack.png" }, { "path": "public/gamecn/icons/game-badge.png", "type": "registry:file", "target": "public/gamecn/icons/game-badge.png" }, { "path": "public/gamecn/icons/gamecn-theme.png", "type": "registry:file", "target": "public/gamecn/icons/gamecn-theme.png" } ], "categories": [ "hud", "status" ] }, { "name": "ability-card", "type": "registry:ui", "title": "Ability Card", "description": "A compact game ability card with rarity, cost, cooldown, and range metadata.", "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/ability-card/ability-card.tsx", "type": "registry:ui", "target": "components/ui/ability-card.tsx" }, { "path": "public/gamecn/icons/ability-card.png", "type": "registry:file", "target": "public/gamecn/icons/ability-card.png" }, { "path": "public/gamecn/icons/resource-pips.png", "type": "registry:file", "target": "public/gamecn/icons/resource-pips.png" }, { "path": "public/gamecn/icons/cooldown-radial.png", "type": "registry:file", "target": "public/gamecn/icons/cooldown-radial.png" }, { "path": "public/gamecn/icons/minimap-frame.png", "type": "registry:file", "target": "public/gamecn/icons/minimap-frame.png" } ], "categories": [ "cards", "inventory" ] }, { "name": "item-card", "type": "registry:ui", "title": "Item Card", "description": "A loot item card with rarity, level, type, and stat lines.", "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/item-card/item-card.tsx", "type": "registry:ui", "target": "components/ui/item-card.tsx" }, { "path": "public/gamecn/icons/item-card.png", "type": "registry:file", "target": "public/gamecn/icons/item-card.png" } ], "categories": [ "cards", "inventory" ] }, { "name": "quest-log", "type": "registry:ui", "title": "Quest Log", "description": "A quest progress component with steps, location, completion state, and rewards.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/quest-log/quest-log.tsx", "type": "registry:ui", "target": "components/ui/quest-log.tsx" }, { "path": "public/gamecn/icons/quest-log.png", "type": "registry:file", "target": "public/gamecn/icons/quest-log.png" }, { "path": "public/gamecn/icons/game-badge.png", "type": "registry:file", "target": "public/gamecn/icons/game-badge.png" } ], "categories": [ "quest", "progress" ] }, { "name": "inventory-grid", "type": "registry:ui", "title": "Inventory Grid", "description": "A fixed-slot inventory grid with quantity and rarity states.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/inventory-grid/inventory-grid.tsx", "type": "registry:ui", "target": "components/ui/inventory-grid.tsx" }, { "path": "public/gamecn/icons/inventory-grid.png", "type": "registry:file", "target": "public/gamecn/icons/inventory-grid.png" } ], "categories": [ "inventory", "grid" ] }, { "name": "equipment-slot", "type": "registry:ui", "title": "Equipment Slot", "description": "An equipment slot display for character loadouts and gear panels.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/equipment-slot/equipment-slot.tsx", "type": "registry:ui", "target": "components/ui/equipment-slot.tsx" }, { "path": "public/gamecn/icons/equipment-slot.png", "type": "registry:file", "target": "public/gamecn/icons/equipment-slot.png" } ], "categories": [ "inventory", "character" ] }, { "name": "character-stats", "type": "registry:ui", "title": "Character Stats", "description": "A stat list for RPG attributes with optional positive and negative deltas.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/character-stats/character-stats.tsx", "type": "registry:ui", "target": "components/ui/character-stats.tsx" }, { "path": "public/gamecn/icons/character-stats.png", "type": "registry:file", "target": "public/gamecn/icons/character-stats.png" } ], "categories": [ "character", "stats" ] }, { "name": "dialogue-box", "type": "registry:ui", "title": "Dialogue Box", "description": "A conversation panel with speaker, portrait, body text, and response choices.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/dialogue-box/dialogue-box.tsx", "type": "registry:ui", "target": "components/ui/dialogue-box.tsx" }, { "path": "public/gamecn/icons/dialogue-box.png", "type": "registry:file", "target": "public/gamecn/icons/dialogue-box.png" } ], "categories": [ "world", "dialogue" ] }, { "name": "minimap-frame", "type": "registry:ui", "title": "Minimap Frame", "description": "A stylized minimap shell with zone label and positioned markers.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/minimap-frame/minimap-frame.tsx", "type": "registry:ui", "target": "components/ui/minimap-frame.tsx" }, { "path": "public/gamecn/icons/minimap-frame.png", "type": "registry:file", "target": "public/gamecn/icons/minimap-frame.png" } ], "categories": [ "world", "map" ] }, { "name": "party-frame", "type": "registry:ui", "title": "Party Frame", "description": "A compact party member list with roles and health state.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/party-frame/party-frame.tsx", "type": "registry:ui", "target": "components/ui/party-frame.tsx" }, { "path": "public/gamecn/icons/party-frame.png", "type": "registry:file", "target": "public/gamecn/icons/party-frame.png" } ], "categories": [ "party", "hud" ] }, { "name": "skill-tree", "type": "registry:ui", "title": "Skill Tree", "description": "A branching progression tree with locked, available, active, and mastered nodes.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/skill-tree/skill-tree.tsx", "type": "registry:ui", "target": "components/ui/skill-tree.tsx" }, { "path": "public/gamecn/icons/skill-tree.png", "type": "registry:file", "target": "public/gamecn/icons/skill-tree.png" } ], "categories": [ "progression", "skill" ] }, { "name": "achievement-toast", "type": "registry:ui", "title": "Achievement Toast", "description": "A game achievement notification with rarity, points, and optional progress.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/achievement-toast/achievement-toast.tsx", "type": "registry:ui", "target": "components/ui/achievement-toast.tsx" }, { "path": "public/gamecn/icons/achievement-toast.png", "type": "registry:file", "target": "public/gamecn/icons/achievement-toast.png" } ], "categories": [ "feedback", "toast" ] }, { "name": "shop-item", "type": "registry:ui", "title": "Shop Item", "description": "A merchant item card with price, stock, owned, and sold-out states.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/shop-item/shop-item.tsx", "type": "registry:ui", "target": "components/ui/shop-item.tsx" }, { "path": "public/gamecn/icons/shop-item.png", "type": "registry:file", "target": "public/gamecn/icons/shop-item.png" } ], "categories": [ "economy", "shop" ] }, { "name": "crafting-queue", "type": "registry:ui", "title": "Crafting Queue", "description": "A crafting job list with queued, crafting, ready, blocked, and empty states.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/crafting-queue/crafting-queue.tsx", "type": "registry:ui", "target": "components/ui/crafting-queue.tsx" }, { "path": "public/gamecn/icons/crafting-queue.png", "type": "registry:file", "target": "public/gamecn/icons/crafting-queue.png" } ], "categories": [ "crafting", "queue" ] }, { "name": "scoreboard", "type": "registry:ui", "title": "Scoreboard", "description": "A match scoreboard with ranks, scores, assists, defeats, and movement states.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/scoreboard/scoreboard.tsx", "type": "registry:ui", "target": "components/ui/scoreboard.tsx" }, { "path": "public/gamecn/icons/scoreboard.png", "type": "registry:file", "target": "public/gamecn/icons/scoreboard.png" } ], "categories": [ "competitive", "score" ] }, { "name": "player-hud", "type": "registry:block", "title": "Player HUD", "description": "A composed combat HUD with health, mana, combo pips, cooldowns, ammo, and effects.", "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/player-hud/player-hud.tsx", "type": "registry:block", "target": "components/blocks/player-hud.tsx" }, { "path": "registry/new-york/health-bar/health-bar.tsx", "type": "registry:ui", "target": "components/ui/health-bar.tsx" }, { "path": "registry/new-york/resource-pips/resource-pips.tsx", "type": "registry:ui", "target": "components/ui/resource-pips.tsx" }, { "path": "registry/new-york/cooldown-radial/cooldown-radial.tsx", "type": "registry:ui", "target": "components/ui/cooldown-radial.tsx" }, { "path": "registry/new-york/ammo-counter/ammo-counter.tsx", "type": "registry:ui", "target": "components/ui/ammo-counter.tsx" }, { "path": "registry/new-york/status-effect-stack/status-effect-stack.tsx", "type": "registry:ui", "target": "components/ui/status-effect-stack.tsx" }, { "path": "public/gamecn/icons/player-hud.png", "type": "registry:file", "target": "public/gamecn/icons/player-hud.png" }, { "path": "public/gamecn/icons/health-bar.png", "type": "registry:file", "target": "public/gamecn/icons/health-bar.png" }, { "path": "public/gamecn/icons/resource-pips.png", "type": "registry:file", "target": "public/gamecn/icons/resource-pips.png" }, { "path": "public/gamecn/icons/status-effect-stack.png", "type": "registry:file", "target": "public/gamecn/icons/status-effect-stack.png" }, { "path": "public/gamecn/icons/game-badge.png", "type": "registry:file", "target": "public/gamecn/icons/game-badge.png" }, { "path": "public/gamecn/icons/gamecn-theme.png", "type": "registry:file", "target": "public/gamecn/icons/gamecn-theme.png" }, { "path": "public/gamecn/icons/cooldown-radial.png", "type": "registry:file", "target": "public/gamecn/icons/cooldown-radial.png" }, { "path": "public/gamecn/icons/ammo-counter.png", "type": "registry:file", "target": "public/gamecn/icons/ammo-counter.png" } ], "categories": [ "block", "hud" ] }, { "name": "inventory-screen", "type": "registry:block", "title": "Inventory Screen", "description": "A composed RPG inventory layout with equipment, item grid, stats, and selected item details.", "dependencies": [ "class-variance-authority" ], "registryDependencies": [ "@gamecn/gamecn-theme", "utils" ], "files": [ { "path": "registry/new-york/inventory-screen/inventory-screen.tsx", "type": "registry:block", "target": "components/blocks/inventory-screen.tsx" }, { "path": "registry/new-york/character-stats/character-stats.tsx", "type": "registry:ui", "target": "components/ui/character-stats.tsx" }, { "path": "registry/new-york/equipment-slot/equipment-slot.tsx", "type": "registry:ui", "target": "components/ui/equipment-slot.tsx" }, { "path": "registry/new-york/inventory-grid/inventory-grid.tsx", "type": "registry:ui", "target": "components/ui/inventory-grid.tsx" }, { "path": "registry/new-york/item-card/item-card.tsx", "type": "registry:ui", "target": "components/ui/item-card.tsx" }, { "path": "public/gamecn/icons/inventory-screen.png", "type": "registry:file", "target": "public/gamecn/icons/inventory-screen.png" }, { "path": "public/gamecn/icons/character-stats.png", "type": "registry:file", "target": "public/gamecn/icons/character-stats.png" }, { "path": "public/gamecn/icons/equipment-slot.png", "type": "registry:file", "target": "public/gamecn/icons/equipment-slot.png" }, { "path": "public/gamecn/icons/inventory-grid.png", "type": "registry:file", "target": "public/gamecn/icons/inventory-grid.png" }, { "path": "public/gamecn/icons/item-card.png", "type": "registry:file", "target": "public/gamecn/icons/item-card.png" } ], "categories": [ "block", "inventory" ] } ] }