Files
Dimension-47/client/src/index.css
Alexander Zielonka e60a8df4f0 Implement complete inventory system with equipment database
Features:
- HP Control component with damage/heal/direct modes (mobile-optimized)
- Conditions system with PF2e condition database
- Equipment database with 5,482 items from PF2e (weapons, armor, equipment)
- AddItemModal with search, category filters, and pagination
- Bulk tracking with encumbered/overburdened status display
- Item management (add, remove, toggle equipped)

Backend:
- Equipment module with search/filter endpoints
- Prisma migration for equipment detail fields
- Equipment seed script importing from JSON data files
- Extended Equipment model (damage, hands, AC, etc.)

Frontend:
- New components: HpControl, AddConditionModal, AddItemModal
- Improved character sheet with tabbed interface
- API methods for equipment search and item management

Documentation:
- CLAUDE.md with project philosophy and architecture decisions

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-19 01:55:01 +01:00

171 lines
3.7 KiB
CSS

@import "tailwindcss";
/* Dimension47 Design System */
@theme {
/* Primary Colors - Dimension47 Magenta */
--color-primary-50: #fdf2fc;
--color-primary-100: #fce8fa;
--color-primary-200: #f9cef4;
--color-primary-300: #f5a5ea;
--color-primary-400: #ed6dd9;
--color-primary-500: #c26dbc;
--color-primary-600: #9a4a94;
--color-primary-700: #7a3977;
--color-primary-800: #5e2e5a;
--color-primary-900: #4a274a;
--color-primary-950: #2d0f2c;
/* Secondary Colors - Dark Purple (47) */
--color-secondary-50: #f9f5f9;
--color-secondary-100: #f4eaf3;
--color-secondary-200: #e7d5e6;
--color-secondary-300: #d4b4d2;
--color-secondary-400: #b988b5;
--color-secondary-500: #9a6495;
--color-secondary-600: #7d4d79;
--color-secondary-700: #663d62;
--color-secondary-800: #542e52;
--color-secondary-900: #472945;
--color-secondary-950: #2a1429;
/* Background Colors (Dark Mode) */
--color-bg-primary: #0f0f12;
--color-bg-secondary: #1a1a1f;
--color-bg-tertiary: #242429;
--color-bg-elevated: #2a2a30;
/* Text Colors */
--color-text-primary: #f5f5f7;
--color-text-secondary: #a1a1a6;
--color-text-muted: #6b6b70;
--color-text-inverse: #0f0f12;
/* Border Colors */
--color-border: #2a2a2f;
--color-border-hover: #3a3a3f;
--color-border-focus: #c26dbc;
/* Semantic Colors */
--color-success-50: #f0fdf4;
--color-success-500: #22c55e;
--color-success-600: #16a34a;
--color-warning-50: #fffbeb;
--color-warning-500: #f59e0b;
--color-warning-600: #d97706;
--color-error-50: #fef2f2;
--color-error-500: #ef4444;
--color-error-600: #dc2626;
--color-info-50: #eff6ff;
--color-info-500: #3b82f6;
--color-info-600: #2563eb;
/* Fonts */
--font-sans: 'Inter', ui-sans-serif, system-ui, sans-serif;
--font-mono: 'JetBrains Mono', ui-monospace, monospace;
/* Border Radius */
--radius-sm: 0.25rem;
--radius-md: 0.375rem;
--radius-lg: 0.5rem;
--radius-xl: 0.75rem;
--radius-2xl: 1rem;
--radius-full: 9999px;
/* Shadows */
--shadow-sm: 0 1px 2px 0 rgb(0 0 0 / 0.3);
--shadow-md: 0 4px 6px -1px rgb(0 0 0 / 0.4), 0 2px 4px -2px rgb(0 0 0 / 0.4);
--shadow-lg: 0 10px 15px -3px rgb(0 0 0 / 0.5), 0 4px 6px -4px rgb(0 0 0 / 0.5);
--shadow-xl: 0 20px 25px -5px rgb(0 0 0 / 0.5), 0 8px 10px -6px rgb(0 0 0 / 0.5);
/* Animations */
--animate-fade-in: fade-in 0.2s ease-out;
--animate-slide-up: slide-up 0.3s ease-out;
--animate-slide-down: slide-down 0.3s ease-out;
}
@keyframes fade-in {
from {
opacity: 0;
}
to {
opacity: 1;
}
}
@keyframes slide-up {
from {
opacity: 0;
transform: translateY(10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
@keyframes slide-down {
from {
opacity: 0;
transform: translateY(-10px);
}
to {
opacity: 1;
transform: translateY(0);
}
}
/* Base Styles */
html {
background-color: var(--color-bg-primary);
color: var(--color-text-primary);
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
overflow-x: hidden;
}
body {
font-family: var(--font-sans);
min-height: 100vh;
margin: 0;
overflow-x: hidden;
max-width: 100vw;
}
#root {
overflow-x: hidden;
max-width: 100vw;
}
/* Focus Styles */
*:focus-visible {
outline: none;
box-shadow: 0 0 0 2px var(--color-bg-primary), 0 0 0 4px var(--color-primary-500);
}
/* Selection */
::selection {
background-color: rgba(194, 109, 188, 0.3);
}
/* Scrollbar Styles */
::-webkit-scrollbar {
width: 8px;
height: 8px;
}
::-webkit-scrollbar-track {
background-color: var(--color-bg-secondary);
}
::-webkit-scrollbar-thumb {
background-color: var(--color-border);
border-radius: 9999px;
}
::-webkit-scrollbar-thumb:hover {
background-color: var(--color-border-hover);
}