Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
174 commits
Select commit Hold shift + click to select a range
ae27b75
Feat: Redo build system to use internal-packages. Begin to redo UI co…
jlukic Apr 3, 2025
7520432
Chore: Rename global to page
jlukic Apr 4, 2025
8860e04
Typo in modal
jlukic Apr 4, 2025
8a56faa
Attempt to recover from file loss
jlukic Apr 4, 2025
e7d4973
Attempt to recover missing files
jlukic Apr 4, 2025
4382e65
Rename minified build to esm
jlukic Apr 5, 2025
60305d4
Tools: Rename minified build to esm
jlukic Apr 5, 2025
910750c
Chore: Add missing package to internal scripts
jlukic Apr 5, 2025
11db6a3
Bug: Missing bracket
jlukic Apr 5, 2025
e20f7df
Tools: finalize internal build tools for dist build
jlukic Apr 5, 2025
97ca40f
Bug: Fix various subtle typos and mistakes
jlukic Apr 7, 2025
05900ec
Tools: Work on rewrite of UI build tools
jlukic Apr 7, 2025
db7e1bc
Tools: Work on rewriting build tools
jlukic Apr 7, 2025
10f5590
Tools: Work on rewriting build tools
jlukic Apr 7, 2025
e8e3a4c
Feat(tools): Work on fixing ui deps
jlukic Apr 7, 2025
a3f3622
Chore: Move themes to be scoped to shadow dom generally
jlukic Apr 8, 2025
6a826e9
Work on build deps
jlukic Apr 8, 2025
9303ead
Test button component
jlukic Apr 8, 2025
9d230c8
Bug: Work on resolving variable scoping with subcomponents
jlukic Apr 8, 2025
0140d6f
Chore: Refactor global theme to be simpler
jlukic Apr 8, 2025
b3c0727
Feat: Finalize refactor of css theming
jlukic Apr 8, 2025
c0b992f
Feat: Redo watch script
jlukic Apr 8, 2025
a2be393
Chore: Remove old watch/build after rewrite
jlukic Apr 8, 2025
2ddfea3
Feat: Finalize build scripts for main package
jlukic Apr 8, 2025
e5079be
Chore: Add alias for now until branch merges
jlukic Apr 8, 2025
012c789
Chore: log text change
jlukic Apr 8, 2025
1e91d1c
Work on light/dark mode theming
jlukic Apr 8, 2025
efa72bb
Iterate on UI components
jlukic Apr 9, 2025
4a3a010
Bug: Fix issue with css houdini props not assignable in shadow dom
jlukic Apr 9, 2025
5ce48fe
Feat: work through inheritance logic
jlukic Apr 9, 2025
c9b43b3
Docs: Remove overrides for sidebar
jlukic Apr 9, 2025
920687b
Docs: Fix import path
jlukic Apr 9, 2025
04087db
Feat: rework component spec to be serializable
jlukic Apr 9, 2025
2c64ee8
Feat: Work on building component spec as dep
jlukic Apr 9, 2025
799ece9
Docs: Remove custom light/dark mode theming
jlukic Apr 9, 2025
4d4bc4d
Feat: Move spec to core
jlukic Apr 9, 2025
04d700f
Bug: Work through changes to serializable component spec
jlukic Apr 9, 2025
5b0860e
Chore: rewrite tests for new func sig
jlukic Apr 9, 2025
41e6919
chore: Test new specs in ui/core system with button
jlukic Apr 9, 2025
00660b1
Feat: Add component spec writing in ui deps
jlukic Apr 9, 2025
3b912bc
Chore: type module
jlukic Apr 9, 2025
f763d60
Chore: packagelock
jlukic Apr 9, 2025
5b5b348
Chore: Remove some old gitignore values no longer in use
jlukic Apr 9, 2025
8b582d1
Add site css and card page css
jlukic Apr 9, 2025
49e6b45
Chore: Clear dist befor gen
jlukic Apr 9, 2025
6a785b6
Chore: Add clean before build
jlukic Apr 9, 2025
fdbbcf8
Bug: Add input-text-color css
jlukic Apr 10, 2025
2c7c573
Feat: Rebuild entire project on update
jlukic Apr 10, 2025
cb6bda0
Bug: Fix regressions from theme change
jlukic Apr 10, 2025
e94ecf2
Bug: Fix minor js bug
jlukic Apr 10, 2025
be4c23e
Testing filesize of json
jlukic Apr 10, 2025
8be6f9a
Bug: Fix issue with first load on some attributes with dashes
jlukic Apr 10, 2025
00436ea
Chore: check in plural component spec
jlukic Apr 10, 2025
d6190ed
Chore: remove client side load testing
jlukic Apr 10, 2025
085a3f3
Bug: '' (empty string) should be treated as undefined for ifDefined
jlukic Apr 10, 2025
793464c
Chore: Improve comment on literals
jlukic Apr 10, 2025
f839714
Chore: improve comment on component spec
jlukic Apr 10, 2025
6171cd2
Docs: Minor copy
jlukic Apr 10, 2025
c7f3756
Feat: Improve watch/build for project to make it more clean
jlukic Apr 10, 2025
33a0242
Docs: Change paths in playground for framework
jlukic Apr 10, 2025
fc284f9
Feat: Remove cleandir for now until figure out task sequencing parell…
jlukic Apr 10, 2025
6a40d5d
Chore: remove whitespace
jlukic Apr 10, 2025
9ea6e40
Feat: Improve component json building to be sync on file write and to…
jlukic Apr 10, 2025
44df24e
Feat: improve reading component specs when some fields are undefined.…
jlukic Apr 10, 2025
037a380
chore: Add in component build for buttons
jlukic Apr 10, 2025
12fb045
Feat: Filter out empty values from component json, ensure plural tag …
jlukic Apr 10, 2025
881ad8d
Chore: Add tinyglob
jlukic Apr 10, 2025
b978520
Chore: Move all specs from @semantic-ui/specs to ui components folders
jlukic Apr 10, 2025
5fd79d1
Chore: Remove ui specs from spec package
jlukic Apr 10, 2025
527f3b4
Chore: Clean up logging
jlukic Apr 10, 2025
23e19c2
Bug: Fix theme-preview to work off new inheritance model
jlukic Apr 10, 2025
40656e0
Feat: Update release notes
jlukic Apr 10, 2025
b62d49a
Chore: Formatting release notes
jlukic Apr 10, 2025
6697e09
Bug: Fix a few wrong paths from rename
jlukic Apr 10, 2025
64d0665
Add entrypoints for specs/component specs
jlukic Apr 10, 2025
f6da0b8
Chore: spec/ folder to specs/ folder. Exports
jlukic Apr 10, 2025
7dacfc5
Fix exports for specs
jlukic Apr 10, 2025
287852b
Fix reading attributes if undefined
jlukic Apr 10, 2025
5aa636d
Docs: Move ui defs to use new spec location
jlukic Apr 10, 2025
ee9942d
Chore: Fix words in icon spec
jlukic Apr 10, 2025
77352c3
Bug: Fully remove specs from main entrypoint
jlukic Apr 10, 2025
86bf108
Properly avoid running task implicitly when importing as subtask
jlukic Apr 10, 2025
e7163bb
Bug: roll back npm run build instead rely on watch
jlukic Apr 10, 2025
30f5386
Chore: Reduce amount of builds in default watch
jlukic Apr 10, 2025
1cc1047
Chore: Update build command
jlukic Apr 23, 2025
8450d97
Work on css variable inheritance solve
jlukic Apr 28, 2025
e5b25a1
Bug: Potentially fix bug around natural height in inline examples
jlukic Apr 28, 2025
7c5ffbd
Docs: work on rereading copy
jlukic Apr 28, 2025
3996b6b
Update test on reactions
jlukic Apr 28, 2025
b5ad061
Fix link to query object
jlukic Apr 29, 2025
837967f
Docs: Missing JS in code block
jlukic Apr 29, 2025
4af4f6c
Minor header
jlukic Apr 29, 2025
2da7329
Docs: Rewrite settings docs to improve copy
jlukic Apr 29, 2025
8778c34
Add doc updates to slots, template, reactivity, homepage and nonreact…
jlukic Apr 29, 2025
bf282bd
Docs: improve reactivity docs
jlukic Apr 29, 2025
5dca4c0
Docs: paragraph by paragraph rewrite of all the reactivity docs!
jlukic Apr 29, 2025
0c89d57
Docs: Fix issue with message b inside em
jlukic Apr 29, 2025
819f5da
Docs: Update reactivity examples
jlukic Apr 29, 2025
18e0b4b
Chore: minor logic
jlukic Apr 29, 2025
f3226e3
Regenerate docs ssl cert
jlukic Apr 29, 2025
9c1aced
Add grammar agent instructions
jlukic Apr 29, 2025
766136e
Add additional links across guides
jlukic Apr 29, 2025
d4a57c3
Feat: Add oklch conversions
jlukic Apr 30, 2025
23cb147
Chore: review all examples one by one
jlukic Apr 30, 2025
f837c7a
Remove failing tests for now
jlukic Apr 30, 2025
3ac434e
Chore: Update release notes with colors
jlukic Apr 30, 2025
a5f9cfe
Feat: oklchtohex now preserves hex
jlukic Apr 30, 2025
3887a7e
Add color utils to examples
jlukic Apr 30, 2025
4f87c2c
Feat: improve audio spectrum example
jlukic Apr 30, 2025
0dcf580
Docs: improve examples
jlukic Apr 30, 2025
e8494fc
Fix AST to work without standalone template
jlukic Apr 30, 2025
5e71ae3
Merge branch 'main' into dist-improve-theme
jlukic Apr 30, 2025
b66eac5
Chore: remove old css usage in docs
jlukic Apr 30, 2025
2d3319e
Refactor: Adjust global entry points for css
jlukic Apr 30, 2025
56d64cd
Refactor: Refactor entrypoints for css
jlukic Apr 30, 2025
9cdaa5c
Reset homepage rewrite
jlukic Apr 30, 2025
dc69ac6
Docs: Swap menu taxonomy again
jlukic May 1, 2025
c24bf30
Update docs sidebar
jlukic May 1, 2025
6597abc
Docs: cleaning up examples
jlukic May 2, 2025
063c7ae
Bug: remove console log
jlukic May 2, 2025
e20eb39
Docs: Continiue to improve docs examples
jlukic May 2, 2025
412c71b
Docs: tweak component examples
jlukic May 2, 2025
4b2b4c6
Feat: add type variation to buttons. implement submit/reset functiona…
jlukic May 2, 2025
51cf652
Feat: Add spin variation to icon spec
jlukic May 2, 2025
68aa35d
Docs: Work on improving the form builder example
jlukic May 2, 2025
51dbbce
Feat: Add type for input
jlukic May 2, 2025
e417b5c
Feat: Add submit() alias
jlukic May 2, 2025
0a90198
Docs: Add API docs for submit,click
jlukic May 2, 2025
c1aa5f3
Docs: Sprucen up form builder example
jlukic May 2, 2025
7a87973
Bug: missing comma in json
jlukic May 2, 2025
9f4e974
Rebuild icon
jlukic May 2, 2025
f439bc9
Reverse row syntax
jlukic May 4, 2025
2b7281f
Chore: improve renderer comment
jlukic May 4, 2025
36446dc
Docs: Random rewrites in templates
jlukic May 27, 2025
ce60471
Feat: Add css color tokens
jlukic May 27, 2025
baee3f3
Add color palette example
jlukic May 27, 2025
345d626
Feat: Improve colors
jlukic May 27, 2025
8ad34fc
Bug: Fix copyText not returning
jlukic May 27, 2025
ad06eac
Minor copy
jlukic May 27, 2025
63472e8
Update color palette example
jlukic May 27, 2025
1396933
Update AI referencs
jlukic May 28, 2025
f52ad48
Feat: Improve AI tools
jlukic May 28, 2025
f90a463
Feat: add part to label
jlukic May 28, 2025
dddcbac
Docs: improve palette example
jlukic May 28, 2025
83f20e2
Docs: Fix typo in docs
jlukic May 28, 2025
5488d1f
Feat: add isNot alias for notEqual
jlukic May 29, 2025
f4cd5d7
Add progress bar example
jlukic May 29, 2025
9fdbddd
Feat: Update AI instructions
jlukic May 29, 2025
c4eb248
Chore: move ai folder to dot folder
jlukic May 29, 2025
80c675e
Chore: move ai folder for easier tool use with claude
jlukic May 29, 2025
0979aea
Feat: refactor tokens to organize into subfiles
jlukic May 29, 2025
b06fe66
Feat: Refactor css color tokens to be computed from theme
jlukic May 29, 2025
9d2a6b5
Work on color palette component
jlukic May 29, 2025
01498aa
Feat: finalize color refactor
jlukic May 29, 2025
da6a89c
Tests: Fix some failing tests for olkch related to null
jlukic May 29, 2025
272ce4c
Bug: Fix failing reactivity test, allow context to properly update
jlukic May 29, 2025
ff4512a
Merge branch 'dist-improve-theme' into dist-improve-theme-docs
jlukic May 29, 2025
3b8c205
Merge pull request #66 from Semantic-Org/dist-improve-theme-docs
jlukic May 29, 2025
cea13b1
Feat: Finalize ai contexts, add release notes
jlukic May 29, 2025
fbef0ae
Merge branch 'dist-improve-theme-docs' into dist-improve-theme
jlukic May 29, 2025
47fb49f
Chore: fix some css tokens
jlukic May 29, 2025
05fa983
Feat: reason about some tokens and move them around
jlukic May 29, 2025
a3e7f3f
Merge branch 'main' into dist-improve-theme
jlukic May 29, 2025
cc2344e
Bug: Fix incorrect color name for slate 'black'
jlukic May 29, 2025
637cb56
Feat: Continue to improve css tokens, rejigger text colors now to all…
jlukic May 29, 2025
ab3d595
Feat: Refactor header/text colors and primary/secondary hues
jlukic May 29, 2025
d667fae
Docs: Add loader example
jlukic May 29, 2025
37bd21d
Chore: whitespace
jlukic May 29, 2025
402e8f5
Docs: minor updates to loader
jlukic May 30, 2025
754ca69
Feat: Continue to refine ai context window
jlukic May 30, 2025
7514f8e
Chore: remove empty token file
jlukic May 30, 2025
09c7526
Fix hardcoded version
jlukic May 30, 2025
e94e151
Chore: remove addCascade until proper rewrite
jlukic May 30, 2025
620063f
Chore: Remove corresponding import for removed cascade func
jlukic May 30, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
4 changes: 0 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,10 +1,6 @@
node_modules/
test/coverage/
coverage/
src/**/site/
theme.config
semantic.json
tasks/**/oauth.js
playwright_report/
dev/examples/
dev/ui/
Expand Down
256 changes: 256 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,256 @@
# Semantic UI - Claude Code Integration Guide

This file provides Claude Code-specific guidance for working with the Semantic UI web component framework. It acts as an intelligent entry point to the comprehensive AI context system located in `/ai/`.

## Context Loading Strategy

### **Essential Context Foundation**
Always load these foundational files for any Semantic UI task:
1. **[`ai/00-START-HERE.md`](ai/00-START-HERE.md)** - Navigation hub and task-based routing
2. **[`ai/foundations/mental-model.md`](ai/foundations/mental-model.md)** - Core architectural concepts

### **Task-Based Context Loading**
```
Building Components → ai/guides/component-generation-instructions.md
Debugging Issues → ai/foundations/codebase-navigation-guide.md
Implementation Patterns → ai/guides/patterns-cookbook.md
API Reference → ai/foundations/quick-reference.md
HTML/CSS Work → ai/guides/html-css-style-guide.md
```

## Claude Code Specific Workflows

### **Component Development Workflow**
1. **Plan Task**: Use TodoWrite tool for multi-step component work
2. **Load Context**: Read `ai/guides/component-generation-instructions.md`
3. **Explore Codebase**: Use Glob/Grep tools to find similar components
4. **Implement**: Follow established patterns from examples
5. **Validate**: Run lint/typecheck commands if available
6. **Mark Complete**: Update TodoWrite with progress

### **Debugging Workflow**
1. **Read Navigation Guide**: `ai/foundations/codebase-navigation-guide.md`
2. **Use Search Tools**: Prefer Task tool for keyword searches
3. **Read Specific Files**: Use Read tool for targeted investigation
4. **Apply Mental Model**: Reference `ai/foundations/mental-model.md` for "why" questions

### **Code Review Workflow**
1. **Load Patterns**: `ai/guides/patterns-cookbook.md`
2. **Check Style Guide**: `ai/guides/html-css-style-guide.md`
3. **Verify API Usage**: `ai/foundations/quick-reference.md`

## Essential Framework Mental Model

### **Core Architecture (Complete Reference)**
```
defineComponent() → Web Component Registration
├── template: HTML with reactive expressions {value}
├── css: Scoped styles with design tokens var(--token)
├── defaultState: Reactive signals (state.value.get/set)
├── defaultSettings: Mutable configuration (settings.property)
├── createComponent: Instance methods (self.method())
├── events: Event delegation ({ 'click .btn': handler })
└── lifecycle: onCreated, onRendered, onDestroyed
```

### **Reactivity Flow**
```
Signal Change → Reaction Triggered → Template Updated → DOM Updated
```

### **Component Communication**
```
Parent ↔ Child: findParent('tag-name') / findChild('tag-name')
Events: dispatchEvent() for notifications
State Sharing: Expose signals on component instance
```

### **Critical Patterns**
- **Settings vs State**: Settings = configuration, State = dynamic data
- **Template Expressions**: `{value}` auto-reactive, `value.get()` in component logic
- **CSS Tokens**: Use `var(--design-token)`, not custom properties
- **Method References**: Use `self.method()` not `this.method()`

## Common Task Patterns

### **Create New Component**
```javascript
// Required files: component.js, component.html, component.css
import { defineComponent, getText } from '@semantic-ui/component';

const template = await getText('./component.html');
const css = await getText('./component.css');

defineComponent({
tagName: 'my-component',
template,
css,
defaultState: { count: 0 },
defaultSettings: { theme: 'default' },
createComponent: ({ state, settings, self }) => ({
increment() { state.count.increment(); }
}),
events: {
'click .button': ({ self }) => self.increment()
}
});
```

### **Component Communication**
```javascript
// Child accessing parent
const parent = findParent('parent-component');
const parentData = parent.sharedData.get();

// Parent managing child
const child = findChild('child-component');
child.updateDisplay();

// Event notifications
dispatchEvent('dataChanged', { newValue: data });
```

### **Reactive State Management**
```javascript
// In component logic
state.items.push(newItem); // Reactive array mutation
state.user.setProperty('name', 'Alice'); // Reactive object update
state.counter.increment(); // Built-in helpers

// In templates (automatic reactivity)
{items.length} // Auto-updates
{#if user.isActive}...{/if} // Conditional rendering
{#each items}...{/each} // List rendering
```

## Claude Code Tool Optimization

### **Search Strategy**
```
Unknown Keywords/Concepts → Task tool (multi-round search)
Specific File Paths → Read tool (direct access)
Class Definitions → Glob tool (pattern matching)
Code Within Files → Grep tool (content search)
```

### **Tool Usage Patterns**
```javascript
// ✅ Good: Batch multiple tool calls
TodoWrite → Read → Glob → Edit (single response)

// ✅ Good: Use Task for exploration
Task: "Find all dropdown components and their configuration patterns"

// ✅ Good: Specific tool for specific needs
Glob: "**/*dropdown*" → Read specific files

// ❌ Avoid: Sequential single tool calls
Read → (wait) → Glob → (wait) → Edit
```

### **Performance Optimization**
- **Batch tool calls** in single responses when possible
- **Use Task tool** for open-ended exploration
- **Cache common patterns** in todo lists for complex work
- **Prefer specific tools** (Read vs Task) when you know the target

## Framework-Specific Guidelines

### **Must-Read Before Component Creation**
1. **CSS Patterns**: [`ai/guides/html-css-style-guide.md`](ai/guides/html-css-style-guide.md) - Design token usage
2. **Method References**: [`ai/foundations/mental-model.md`](ai/foundations/mental-model.md) - `self.method()` patterns
3. **Component Communication**: [`ai/guides/patterns-cookbook.md`](ai/guides/patterns-cookbook.md) - Parent-child patterns

### **Critical Anti-Patterns to Avoid**
- ❌ Prefixed CSS classes (`.size-large` → use `.large`)
- ❌ `this.method()` → use `self.method()`
- ❌ Hardcoded CSS values → use design tokens `var(--token)`
- ❌ Global state stores → use component tree navigation
- ❌ Direct DOM manipulation → use reactive templates

### **Design Token Priority**
```css
/* ✅ First: Use existing design tokens */
color: var(--text-color);
spacing: var(--spacing);
border-radius: var(--border-radius);

/* ✅ Second: Component-specific values → design tokens */
--handle-size: 24px; /* Component-specific */
--track-color: var(--standard-10); /* Maps to design token */

/* ❌ Never: Recreate existing tokens */
--component-text-color: var(--text-color); /* Unnecessary wrapper */
```

## Advanced Context Loading

### **Specialized Package Work**
```
Reactivity System → ai/specialized/reactivity-system-guide.md
DOM Querying → ai/specialized/query-system-guide.md
Template System → ai/specialized/templating-system-guide.md
Utility Functions → ai/specialized/utils-package-guide.md
```

### **Complex Implementation Contexts**
```
Template-as-Settings Pattern → ai/guides/patterns-cookbook.md#template-as-settings-pattern
Parent-Child Communication → ai/guides/patterns-cookbook.md#component-communication-patterns
Query Component Configuration → ai/guides/patterns-cookbook.md#query-library-patterns
```

## TodoWrite Integration for Complex Tasks

### **When to Use TodoWrite**
- Multi-step component creation
- Complex debugging across multiple files
- Feature implementation requiring coordination
- Code review with multiple checks

### **Task Breakdown Examples**
```javascript
// ✅ Component Creation Task List
[
{ content: "Research existing dropdown patterns", status: "pending" },
{ content: "Create dropdown.js with basic structure", status: "in_progress" },
{ content: "Implement template with design tokens", status: "pending" },
{ content: "Add event handling and state management", status: "pending" },
{ content: "Test integration with parent components", status: "pending" },
{ content: "Run lint and typecheck", status: "pending" }
]
```

## Context Memory Management

### **Context Optimization Strategy**
1. **Foundation First**: Begin with navigation hub and mental model
2. **Targeted Loading**: Add specific guides based on task requirements
3. **Cross-Reference Navigation**: Use document links rather than loading all content
4. **Task-Scoped Context**: Load only context relevant to current work

### **Context Loading Sequence**
```
1. ai/00-START-HERE.md (navigation foundation)
2. ai/foundations/mental-model.md (architectural foundation)
3. Task-specific guide (component, patterns, etc.)
4. ai/foundations/quick-reference.md (API syntax)
5. Specialized guides (domain-specific requirements)
```

---

## Context Loading Protocol

**For any Semantic UI task:**

1. **Foundation**: [`ai/00-START-HERE.md`](ai/00-START-HERE.md) - Always load first
2. **Architecture**: [`ai/foundations/mental-model.md`](ai/foundations/mental-model.md) - Core concepts
3. **Task-Specific**: Load appropriate specialized guide
4. **Reference**: [`ai/foundations/quick-reference.md`](ai/foundations/quick-reference.md) - API syntax

**Context Optimization**: The AI context system uses ~8K token documents with cross-references. Load documents sequentially based on task requirements rather than loading multiple large documents simultaneously.

---

*This file serves as an intelligent entry point to the comprehensive AI documentation system. For complete information, always refer to the specialized guides in the `/ai/` directory.*
76 changes: 74 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,79 @@
## Semantic-UI
# Semantic UI Next

[![UnitTests](https://badgen.net/https/wzcozo2uwacu4dfvawkdkmxi640guflx.lambda-url.us-east-1.on.aws?cache=300)](https://github.com/Semantic-Org/Semantic-Next/actions/workflows/ci.yml)
[![E2ETests](https://badgen.net/https/ien5pqfy4lsyqy5a2vegyvevpa0petpj.lambda-url.us-east-1.on.aws?cache=300)](https://github.com/Semantic-Org/Semantic-Next/actions/workflows/ci.yml)
[![Coverage](https://badgen.net/https/fnipttzwzg6ieemy4winuladuu0jhqef.lambda-url.us-east-1.on.aws?cache=300)](https://github.com/Semantic-Org/Semantic-Next/actions/workflows/ci.yml)

Semantic UI Next is a UI framework built with web components.
A modern, lightweight UI framework built with Web Components.

> **Note:** This is an early technology preview. APIs and structures may change.

## Installation

```bash
npm install @semantic-ui/core
```

## Usage

### Direct Component Imports

For the most efficient imports, you can import individual components directly:

```js
// Import specific components
import { UIButton } from '@semantic-ui/core/button';
import { UICard } from '@semantic-ui/core/card';

// Import global theme
import '@semantic-ui/core/theme';

// Or import component-specific themes (if needed)
import '@semantic-ui/core/theme/button';
import '@semantic-ui/core/theme/card';
```

### Full Framework Import

If you need multiple components, you can import from the main package:

```js
// Import multiple components
import { UIButton, UICard, UIMenu } from '@semantic-ui/core';

// Import global theme
import '@semantic-ui/core/theme';
```

### CDN Usage

For quick prototyping or projects without a build step, you can use the CDN:

```html
<!-- Import the entire framework -->
<script type="module" src="https://cdn.jsdelivr.net/npm/@semantic-ui/core/dist/cdn/semantic-ui.min.js"></script>

<!-- Import global theme CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@semantic-ui/core/dist/cdn/theme.min.css">
```

Or load individual components:

```html
<!-- Import just the button component -->
<script type="module" src="https://cdn.jsdelivr.net/npm/@semantic-ui/core/dist/cdn/button.min.js"></script>

<!-- Import global theme CSS -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@semantic-ui/core/dist/cdn/theme.min.css">

<!-- Or import component-specific theme (if needed) -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@semantic-ui/core/dist/cdn/theme/button.min.css">
```

## Contributing

Please see [CONTRIBUTING.md](CONTRIBUTING.md) for development setup instructions and contribution guidelines.

## License

MIT
Loading