mirror of
https://github.com/mattermost/mattermost.git
synced 2026-02-03 20:40:00 -05:00
Some checks are pending
API / build (push) Waiting to run
Server CI / Compute Go Version (push) Waiting to run
Server CI / Check mocks (push) Blocked by required conditions
Server CI / Check go mod tidy (push) Blocked by required conditions
Server CI / check-style (push) Blocked by required conditions
Server CI / Check serialization methods for hot structs (push) Blocked by required conditions
Server CI / Vet API (push) Blocked by required conditions
Server CI / Check migration files (push) Blocked by required conditions
Server CI / Generate email templates (push) Blocked by required conditions
Server CI / Check store layers (push) Blocked by required conditions
Server CI / Check mmctl docs (push) Blocked by required conditions
Server CI / Postgres with binary parameters (push) Blocked by required conditions
Server CI / Postgres (push) Blocked by required conditions
Server CI / Postgres (FIPS) (push) Blocked by required conditions
Server CI / Generate Test Coverage (push) Blocked by required conditions
Server CI / Run mmctl tests (push) Blocked by required conditions
Server CI / Run mmctl tests (FIPS) (push) Blocked by required conditions
Server CI / Build mattermost server app (push) Blocked by required conditions
Web App CI / check-lint (push) Waiting to run
Web App CI / check-i18n (push) Blocked by required conditions
Web App CI / check-types (push) Blocked by required conditions
Web App CI / test (platform) (push) Blocked by required conditions
Web App CI / test (mattermost-redux) (push) Blocked by required conditions
Web App CI / test (channels shard 1/4) (push) Blocked by required conditions
Web App CI / test (channels shard 2/4) (push) Blocked by required conditions
Web App CI / test (channels shard 3/4) (push) Blocked by required conditions
Web App CI / test (channels shard 4/4) (push) Blocked by required conditions
Web App CI / upload-coverage (push) Blocked by required conditions
Web App CI / build (push) Blocked by required conditions
* Add CLAUDE.md documentation files for webapp directories - Add root webapp CLAUDE.md with overview and build commands - Add channels CLAUDE.md with architecture and testing info - Add documentation for actions, components, selectors, utils - Add documentation for sass, tests, and mattermost-redux - Add platform documentation for client and types - Update .gitignore * Add CLAUDE docs and allow tracking * Clarify CLAUDE instructions for i18n workflow * Refactor webapp/CLAUDE.md into a nested hierarchy Decomposed the monolithic webapp/CLAUDE.md into focused, context-aware files distributed across the directory structure: - webapp/CLAUDE.md (Root overview) - webapp/channels/CLAUDE.md (Channels workspace) - webapp/channels/src/components/CLAUDE.md - webapp/channels/src/actions/CLAUDE.md - webapp/channels/src/selectors/CLAUDE.md - webapp/channels/src/packages/mattermost-redux/CLAUDE.md - webapp/platform/CLAUDE.md (Platform workspace) - webapp/platform/client/CLAUDE.md * Move files to optional, then add script to move them to proper claud.md
2.5 KiB
2.5 KiB
CLAUDE: sass/
Purpose
- Global SCSS for the Channels app: theme tokens, layout primitives, shared mixins.
- Component-specific styles should stay next to their TSX files (see
../components/CLAUDE.md).
Directory Structure
sass/
├── styles.scss # Main entry point (imports all modules)
├── base/
│ ├── _css_variables.scss # Theme CSS variables (colors, elevations, radii)
│ ├── _structure.scss # Base structural styles
│ └── _typography.scss # Typography defaults
├── components/ # Global component styles (legacy)
├── layout/ # Layout styles (headers, sidebars, content)
├── responsive/ # Responsive breakpoint styles
├── routes/ # Route-specific styles
├── utils/
│ ├── _mixins.scss # Reusable mixins
│ ├── _functions.scss # SCSS functions
│ ├── _variables.scss # SCSS variables (non-CSS)
│ └── _animations.scss # Animation definitions
└── widgets/ # Widget styles
Theme Variables
All theme colors are defined in base/_css_variables.scss. Always use CSS variables for colors:
// GOOD
.MyComponent {
color: var(--center-channel-color);
background: var(--center-channel-bg);
border: var(--border-default);
}
Key Variable Categories
- Colors:
--center-channel-color,--link-color,--button-bg. - RGB variants:
--center-channel-color-rgb(for rgba transparency). - Elevation:
--elevation-1through--elevation-6. - Radius:
--radius-xsthrough--radius-full. - Borders:
--border-default,--border-light,--border-dark.
Responsive Patterns
Use mixins from utils/_mixins.scss for responsive styles; do not hard-code media queries.
@import 'utils/mixins';
.MyComponent {
padding: 16px;
@include tablet { padding: 12px; }
@include mobile { padding: 8px; }
}
Styling Rules
- Naming: Use PascalCase root class matching component name. Use BEM for children (
.ComponentName__element) and modifiers (&.modifier). - Specificity: Avoid
!important; favor specificity via nested classes or utility mixins. - Units: Prefer
pxfor sizing unless inheriting from existingremusage; keep consistent within a file.
Cleanup Targets
- Replace hard-coded values with shared tokens.
- Migrate legacy element selectors to component-scoped classes when files are touched.