Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
68ce2d6
multi-color icon support
fredvisser Sep 5, 2025
04fc6a7
contributing update
fredvisser Sep 5, 2025
38f4eaf
Change files
fredvisser Sep 5, 2025
bef9f1e
simplify approach
fredvisser Sep 6, 2025
6fb1f1d
Change files
fredvisser Sep 6, 2025
6d46aff
review feedback
fredvisser Sep 6, 2025
302841a
test fix
fredvisser Sep 6, 2025
9e750b7
review feedback
fredvisser Sep 8, 2025
d66f213
alt1
fredvisser Oct 31, 2025
82b6bc4
alternative approach
fredvisser Nov 3, 2025
b308799
using mixin
fredvisser Nov 3, 2025
d959e7f
improved approach
fredvisser Nov 4, 2025
5ab3e38
Merge branch 'main' into users/fvisser/multi-color-icons
fredvisser Nov 4, 2025
3f0c246
lockfile updates
fredvisser Nov 4, 2025
3d7d29a
Merge branch 'main' into users/fvisser/multi-color-icons
fredvisser Nov 4, 2025
6a201ed
reduce script duplication
fredvisser Nov 4, 2025
a8d0a38
base class instead of mixin
fredvisser Nov 4, 2025
288cc8f
cleanup
fredvisser Nov 4, 2025
89ad7bb
resolve test failure
fredvisser Nov 4, 2025
de85b53
review feedback
fredvisser Nov 4, 2025
a5e66a3
test fix
fredvisser Nov 4, 2025
df550e7
reduce duplication
fredvisser Nov 4, 2025
b6e6f9d
update tests
fredvisser Nov 4, 2025
a2f2194
Change files
fredvisser Nov 4, 2025
7d375ff
review feedback
fredvisser Nov 6, 2025
d5c6b5a
update old changes
fredvisser Nov 6, 2025
831f313
lint fix
fredvisser Nov 6, 2025
0f1aa69
review feedback
fredvisser Nov 25, 2025
7d7526a
path updates
fredvisser Nov 26, 2025
f900029
Fix build pipelines for multi-color icons by updating icon imports
fredvisser Nov 26, 2025
25e91a9
fix lockfiles
fredvisser Nov 26, 2025
21b983b
fix paths 2
fredvisser Nov 26, 2025
5a8ace5
lint fixes
fredvisser Nov 26, 2025
64d962c
build fixes
fredvisser Nov 26, 2025
9b82769
Merge branch 'main' into users/fvisser/multi-color-icons
fredvisser Nov 26, 2025
1e4d1eb
review feedback
fredvisser Nov 26, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
58 changes: 58 additions & 0 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
# Nimble Design System – AI Coding Agent Instructions

## Quick Orientation
- Multi-framework system (Web Components + Angular, Blazor, React wrappers). Core packages live under `packages/`.
- FAST Foundation is the underlying component model; tokens come from `@ni/nimble-tokens`.
- Variants: Nimble (general), Spright (specialized), Ok (incubating). Each has its own `copilot-instructions.md` for details.

For repo-wide processes and tooling details, see [`CONTRIBUTING.md`](../CONTRIBUTING.md).

## Core Workflows
```bash
# Install & build everything
npm install && npm run build

# Watch mode (recommended): Command Palette → "Run Task" → "Create Watch Terminals"

# Storybook + tests (run from repo root)

npm run tdd:watch -w @ni/nimble-components
npm run test-webkit -w @ni/nimble-components

# Generate change files before PRs that touch published packages
npm run change
```

## Change Management
- Every PR impacting a published package needs a beachball change file (`npm run change`). See the "Beachball change file" section of [`CONTRIBUTING.md`](../CONTRIBUTING.md).
- Keep builds/test scripts passing locally before queuing CI.

## Component Development
- **Guidelines**: Follow [`packages/nimble-components/CONTRIBUTING.md`](../packages/nimble-components/CONTRIBUTING.md).
- **Snippets**: See [`packages/nimble-components/copilot-instructions.md`](../packages/nimble-components/copilot-instructions.md) for registration, styling, and testing templates.
- **Registration**: Use `DesignSystem.getOrCreate().withPrefix(...)`.
- **Bundling**: Update `src/all-components.ts`.

## Styling & Storybook
- **Styling**: Use design tokens (`theme-provider/design-tokens.ts`). See [`docs/css-guidelines.md`](../packages/nimble-components/docs/css-guidelines.md) for cascade layers and utilities.
- **Storybook**: Required for all components (`.stories.ts`, `-matrix.stories.ts`, `.mdx`). See [`packages/storybook/CONTRIBUTING.md`](../packages/storybook/CONTRIBUTING.md).

## Testing Expectations
- Unit tests use Karma/Jasmine fixtures (`npm run tdd:watch -w @ni/nimble-components`).
- Cross-browser coverage: Chrome, Firefox, WebKit (`npm run test-webkit -w @ni/nimble-components`).
- Disable flaky tests only with an issue link and browser-specific skip tag as outlined in package CONTRIBUTING docs.

## Common Pitfalls
- ❌ Forgetting `npm run change` when touching published packages.
- ❌ Styling component state via classes instead of attributes/behaviors.
- ❌ Hardcoding tag names inside templates instead of importing tag constants.
- ❌ Skipping Storybook docs/matrix updates when component APIs change.
- ❌ Not running formatter/tests before pushing (`npm run format`, `npm run tdd:watch`).

## Key References
- Architecture: `../docs/Architecture.md`
- Repo contributing guide: `../CONTRIBUTING.md`
- Nimble component guide: `../packages/nimble-components/CONTRIBUTING.md`
- CSS guidelines: `../packages/nimble-components/docs/css-guidelines.md`
- Storybook authoring guide: `../packages/storybook/CONTRIBUTING.md`
- Specs overview: `../specs/README.md`
Loading