Components Overview โ
Button Component Available
The Sando Button component is now available! Other components are under active development. Check back soon or watch the repo for updates.
Planned Features โ
When complete, Sando will provide a collection of accessible Web Components built with Lit:
- โก Framework-agnostic: Works with React, Vue, Angular, Svelte, or vanilla JS
- โฟ Accessible: WCAG 2.1 AA compliant
- ๐จ Themeable: Token-driven styling with flavor support
- ๐ฆ Tree-shakeable: Import only what you need
- ๐ TypeScript: Full type safety
- ๐งช Tested: Comprehensive unit and E2E tests
Available Components โ
โ Button โ
Versatile, accessible button component with multiple variants, sizes, and advanced features including toggle support, icon-only mode, and link functionality.
Variants: solid, outline, ghost, text Sizes: xs, small, medium, large (all WCAG AA compliant 44x44px touch targets) States: default, hover, active, focus, disabled, loading Status: default, success, destructive Border Radius: none, default, full Features: icon-only, toggle buttons, render as link (href), icon props (start-icon/end-icon)
NEW in latest version:
- โจ Extra small (xs) size for compact UIs
- โจ Text variant for minimal inline links
- โจ Icon-only mode with circular option (radius="full")
- โจ Toggle button support with aria-pressed
- โจ Render as
<a>
tag with href attribute - โจ Icon props (start-icon/end-icon) as alternative to slots
- โจ Enhanced accessibility (WCAG 2.1 Level AA)
๐ Coming Soon โ
- Card - Container for content
- Input - Text input field
- Select - Dropdown selector
- Modal - Dialog overlay
- Tooltip - Contextual help
- Badge - Status indicators
- Avatar - User representation
- Checkbox - Selection control
- Radio - Single selection from group
- Switch - Toggle control
- Tabs - Content navigation
- Alert - Notification messages
Installation (When Available) โ
# Coming soon to npm
pnpm add @sando/components @sando/tokens
Current Status
The Button component is fully functional with comprehensive tests. Additional components are in development. You can:
- Explore the token system which is fully functional
- Use the Button component in your projects
- Contribute to development on GitHub
Planned Usage โ
Once available, components will be used like this:
Import โ
import '@sando/tokens/css'
import '@sando/components/button'
Use โ
<sando-button
variant="solid"
size="medium"
flavor="original"
>
Button Text
</sando-button>
With TypeScript โ
/// <reference types="@sando/components" />
const button = document.querySelector('sando-button')
button.variant = 'solid' // Will be type-safe
Framework Integration (Planned) โ
React โ
import '@sando/components/button'
function App() {
return (
<sando-button
variant="solid"
onClick={(e) => console.log('Clicked!')}
>
Click me
</sando-button>
)
}
Vue โ
<template>
<sando-button
variant="solid"
@click="handleClick"
>
Click me
</sando-button>
</template>
<script setup>
import '@sando/components/button'
const handleClick = () => console.log('Clicked!')
</script>
Angular โ
// app.module.ts
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'
@NgModule({
schemas: [CUSTOM_ELEMENTS_SCHEMA]
})
<!-- component.html -->
<sando-button
variant="solid"
(click)="handleClick()"
>
Click me
</sando-button>
Planned Customization โ
Override design tokens:
sando-button {
--sando-button-solid-backgroundColor-default: #ff6b6b;
--sando-button-solid-textColor-default: white;
}
Or apply flavors:
<sando-button variant="solid" flavor="original">
Themed Button
</sando-button>
Planned Accessibility โ
All components will be built with accessibility in mind:
- โ Keyboard navigation
- โ Screen reader support
- โ ARIA attributes
- โ Focus management
- โ Color contrast (WCAG AA)
Browser Support (Target) โ
- โ Chrome/Edge 90+
- โ Firefox 88+
- โ Safari 14+
- โ Opera 76+
Contributing โ
Want to help build these components? Check out:
Next Steps โ
While components are under development, you can:
- Explore Tokens - Fully functional token system
- Read Architecture Guide - Understand the three-layer system
- Review Testing Strategy - 2,200+ tests for tokens
- Learn About Theming - How the flavor system works