vagabond-rpg-foundryvtt/styles/scss/components/_tabs.scss
Cal Corum 8b9daa1f36 Add light/dark theme system with CSS variables, fix ProseMirror editors
Theme System:
- Add _theme-variables.scss with light (parchment) and dark color palettes
- Register theme options in system.json for Foundry v13 color scheme support
- Convert all SCSS color variables to CSS custom properties
- Update base, mixins, components, and sheet styles for theme support
- Add _applyThemeClass() to actor and item sheet classes

ProseMirror Editor Fix (v13 ApplicationV2):
- Replace {{editor}} helper with <prose-mirror> custom element
- Add TextEditor.enrichHTML() for rich text content preparation
- Update all 8 item templates (spell, weapon, armor, equipment, etc.)
- Fix toolbar hiding content by renaming wrapper to .editor-wrapper
- Style prose-mirror with sticky toolbar and proper flex layout

Roll Dialog & Chat Card Styling:
- Complete roll dialog styling with favor/hinder toggles, info panels
- Complete chat card styling with roll results, damage display, animations
- Mark tasks 5.7 and 5.8 complete in roadmap
- Add task 5.11 for deferred resizable editor feature

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2025-12-15 15:36:16 -06:00

112 lines
2.4 KiB
SCSS

// Vagabond RPG - Tab Styles
// ==========================
.vagabond {
// Tab navigation
.sheet-tabs {
display: flex;
gap: 0;
margin: 0;
padding: 0;
list-style: none;
border-bottom: 2px solid var(--color-border);
background-color: var(--color-bg-secondary);
.item {
margin: 0;
padding: $spacing-2 $spacing-4;
font-family: $font-family-header;
font-size: $font-size-base;
font-weight: $font-weight-medium;
color: var(--color-text-secondary);
background-color: transparent;
border: none;
border-bottom: 2px solid transparent;
margin-bottom: -2px;
cursor: pointer;
transition: all $transition-fast;
&:hover {
color: var(--color-text-primary);
background-color: var(--color-bg-primary);
}
&.active {
color: var(--color-text-primary);
background-color: var(--color-bg-primary);
border-bottom-color: var(--color-accent-primary);
}
@include focus-visible;
i {
margin-right: $spacing-2;
}
}
}
// Tab content area
.sheet-body {
@include custom-scrollbar;
overflow-y: auto;
padding: $spacing-4;
.tab {
display: none;
&.active {
display: block;
}
}
}
// Vertical tabs variant
.sheet-tabs.vertical {
flex-direction: column;
border-bottom: none;
border-right: 2px solid var(--color-border);
.item {
border-bottom: none;
border-right: 2px solid transparent;
margin-bottom: 0;
margin-right: -2px;
&.active {
border-right-color: var(--color-accent-primary);
}
}
}
// Sub-tabs (within a tab)
.sub-tabs {
display: flex;
gap: $spacing-2;
margin-bottom: $spacing-4;
padding-bottom: $spacing-2;
border-bottom: 1px solid var(--color-border-light);
.sub-tab {
padding: $spacing-1 $spacing-3;
font-size: $font-size-sm;
color: var(--color-text-muted);
background-color: transparent;
border: 1px solid transparent;
border-radius: $radius-md;
cursor: pointer;
transition: all $transition-fast;
&:hover {
color: var(--color-text-primary);
background-color: var(--color-bg-secondary);
}
&.active {
color: var(--color-text-primary);
background-color: var(--color-bg-secondary);
border-color: var(--color-border);
}
}
}
}