# Staticview > Framework-agnostic web components, authored as standard HTML/CSS/TS and compiled to zero-dependency custom elements. Every link below points to a Markdown file. [llms-full.txt](https://staticview.a-labs.space/llms-full.txt) inlines the Guides and Components sections into one file. ## Guides - [Web Components Handbook](https://staticview.a-labs.space/llms/docs/pages/contents/handbook.md): A practical guide to using web components. This covers the core concepts you need to work with any web component library effectively. - [Installation](https://staticview.a-labs.space/llms/docs/pages/contents/installation.md): Install the core package containing all components and types. - [Angular](https://staticview.a-labs.space/llms/docs/pages/contents/setup/angular.md) - [Astro](https://staticview.a-labs.space/llms/docs/pages/contents/setup/astro.md) - [Editor Support](https://staticview.a-labs.space/llms/docs/pages/contents/setup/editor-support.md): The package ships editor metadata for all components: autocomplete for tags and attributes, hover documentation, and richer tooling integration. No generation step is required; the files are included in the npm package. - [Preact](https://staticview.a-labs.space/llms/docs/pages/contents/setup/preact.md) - [Qwik](https://staticview.a-labs.space/llms/docs/pages/contents/setup/qwik.md) - [React 18 and earlier](https://staticview.a-labs.space/llms/docs/pages/contents/setup/react18.md) - [React 19+](https://staticview.a-labs.space/llms/docs/pages/contents/setup/react19.md) - [SolidJS](https://staticview.a-labs.space/llms/docs/pages/contents/setup/solidjs.md) - [Svelte](https://staticview.a-labs.space/llms/docs/pages/contents/setup/svelte.md) - [Theming](https://staticview.a-labs.space/llms/docs/pages/contents/setup/theming.md): Staticview components are styled through CSS custom properties (`--sv-*` tokens). Custom properties inherit, so you can define the tokens once on `:root`, or override the color and size tokens on a specific container to theme just a part of the page. - [Vanilla HTML](https://staticview.a-labs.space/llms/docs/pages/contents/setup/vanilla-html.md) - [Vue](https://staticview.a-labs.space/llms/docs/pages/contents/setup/vue.md) ## Authoring - [Documenting Web Components](https://staticview.a-labs.space/llms/docs/pages/contents/authoring/documenting.md): This guide explains how to document Web Components using JSDoc comments. The analyzer reads your source files and extracts as much information as it can automatically. JSDoc tags let you fill in the gaps, override inferred values, and provide richer documentation where needed. - [Writing Web Components for staticview](https://staticview.a-labs.space/llms/docs/pages/contents/authoring/guidelines.md): This guide is for writing staticview components, or your own components built with its build tool. - [Limitations and Workarounds](https://staticview.a-labs.space/llms/docs/pages/contents/authoring/limitations.md): Web components have platform-level limitations that affect accessibility, typing, developer experience, and lifecycle behavior. Each section below describes a known limitation, the available workaround, and its tradeoffs. - [Macros](https://staticview.a-labs.space/llms/docs/pages/contents/authoring/macros.md): Macros are build-time functions that are replaced with generated code during compilation. They eliminate boilerplate common to every web component. Each macro is available globally and requires no import. ## Agents - [Writing Components](https://staticview.a-labs.space/llms/docs/sources/agents/writing-components.md): Instructions for AI agents writing staticview components in a user's project. ## Packages - [@staticview/cli](https://staticview.a-labs.space/llms/packages/cli/README.md): A set of commands for working with `@staticview/ui` web components. - [@staticview/eslint-plugin](https://staticview.a-labs.space/llms/packages/eslint-plugin/README.md): `@staticview/eslint-plugin` is an ESLint plugin for authoring web components with the `@staticview/core` build system. It enforces patterns and constraints specific to staticview components, covering custom element conventions, build-time compatibility, DOM API usage, and framework type generation. - [@staticview/staticbolt-plugin](https://staticview.a-labs.space/llms/packages/staticbolt-plugin/README.md): A staticbolt plugin for compiling web components with `@staticview/core`. - [@staticview/ui](https://staticview.a-labs.space/llms/packages/ui/README.md) - [@staticview/vite-plugin](https://staticview.a-labs.space/llms/packages/vite-plugin/README.md): A Vite plugin for compiling web components with `@staticview/core`. ## Components - [Accordion](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-accordion.md): `sv-accordion` expands and collapses a section of content beneath a summary header. - [Alert Stack](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-alert-stack.md): `sv-alert-stack` displays stackable alerts on the page's top layer. - [Anchor](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-anchor.md): `sv-anchor` positions an element beside an anchor rectangle and tries fallback placements until one fits inside the visible viewport. It has no attributes or slots; configure it from JavaScript through its properties. - [Code Editor](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-code-editor.md): `sv-code-editor` is a simple code editor with pluggable syntax highlighting. - [Collapsible](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-collapsible.md): `sv-collapsible` expands and collapses content, and optionally manages the disclosure trigger for it. - [Combobox](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-combobox.md): `sv-combobox` combines an editable text field with a listbox. Use `sv-select` when users should choose without typing: a combobox keeps focus in its text field, while a select moves focus through its options. - [Dialog](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-dialog.md): `sv-dialog` presents important information, requests decisions, or handles tasks in a modal or non-modal dialog above the page. - [Expression Parser](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-expression-parser.md): `sv-expression-parser` parses and evaluates user-defined expressions without `eval()` or `new Function()`. It builds an AST from the source string and walks it, so an expression can be inspected before it runs. - [Flyout](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-flyout.md): `sv-flyout` presents supplementary content in an animated popover beside a trigger element. - [Menu](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-menu.md): `sv-menu` adds command-menu and submenu keyboard behavior to a nested `sv-flyout`. The flyout still owns the trigger, placement, animation, and dismissal. - [Progress Bar](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-progress-bar.md): `sv-progress-bar` is a straight bar that visually represents progress. - [Progress Ring](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-progress-ring.md): `sv-progress-ring` is an SVG-based ring that visually represents progress. - [Radio](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-radio.md): `sv-radio` is a radio button that groups like a native one. Radios with the same `name` in the same form are one group, and checking one unchecks the rest. - [Rating](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-rating.md): `sv-rating` lets users pick a value by clicking or dragging across a row of shapes. - [Reveal Animation](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-reveal-animation.md): `sv-reveal-animation` reveals elements as they scroll into view by toggling classes on them. - [Segmented Control](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-segmented-control.md): `sv-segmented-control` is a single-selection control, comparable to a radio button group, that submits its selected value with forms. - [Select](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-select.md): `sv-select` adds listbox selection, keyboard navigation, and form participation to a nested `sv-flyout`. Use `sv-combobox` when users should be able to type to filter. - [Slider](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-slider.md): `sv-slider` is a range control for selecting one or more ordered numeric values by dragging or using the keyboard. - [sv-store](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-store.md): `sv-store` defines a reactive state store that can be consumed by other Web Components through ``. - [Template](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-template.md): `sv-template` stamps out HTML templates at runtime with real data. - [Text Flow](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-text-flow.md): `sv-text-flow` animates rapidly changing text and works best for small text or numbers. It is decorative and provides no functional value. - [Toggle Checkbox](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-toggle-checkbox.md): `sv-toggle-checkbox` selects or deselects a single independent option, with an indeterminate state for partial selections. - [Toggle Group](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-toggle-group.md): `sv-toggle-group` coordinates a set of `sv-toggle` buttons: exclusive selection, whole-group disabling, and a combined value. - [Toggle Switch](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-toggle-switch.md): `sv-toggle-switch` toggles a single setting on or off. - [Toggle](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-toggle.md): `sv-toggle` is a button that switches a single option on or off and keeps the pressed state visible. - [Tooltip](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-tooltip.md): `sv-tooltip` shows a short label beside an element on hover or keyboard focus. - [UI State](https://staticview.a-labs.space/llms/packages/ui/docs/components/sv-ui-state.md): `sv-ui-state` brings reactive state to plain HTML: declare named stores, bind them to DOM elements, and the page updates automatically. No framework required. ## Examples - [Accordion Checkout Steps](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/checkout-steps.example.md): Each step is an accordion in the same `group`. Later steps start `disabled` until the previous one is completed, and `open()` moves the flow forward while earlier steps stay reachable for edits. - [Accordion: Basic](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/basic.example.md): Text in the `summary` slot forms the always-visible header, and everything else becomes the collapsible content. - [Accordion: Opened and Disabled](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/states.example.md): `opened` expands the accordion from markup, and `disabled` locks it in its current state, open or closed. - [Accordion: Marker](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/marker.example.md): `marker` moves the icon to the start or removes it entirely. The end is the default. An icon slotted as `marker` replaces the chevron and picks up the same size, color, and rotation. Set `rotate: none` on it to opt out of the rotation. - [Accordion: Group](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/group.example.md): Accordions sharing a `group` name open one at a time. Opening one closes the rest, anywhere on the page. - [Accordion: Styling](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/styling.example.md): The color, border, and radius tokens the accordion reads can be overridden per element, and the shadow parts cover the rest. - [Accordion: Animation](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/animation.example.md): `--sv-accordion-dur` and `--sv-accordion-ease` reshape the expand transition and the marker rotation together, and a zero duration turns them off. The reduced motion fallback wins over both. The `--opened` state flips as soon as the accordion toggles, so slotted content can animate alongside the expand. - [Accordion: Programmatic](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/programmatic.example.md): `open`, `close`, and `toggle` drive the accordion from JavaScript, and each takes an optional flag that skips the animation. - [Accordion FAQ Card](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/faq-card.example.md): A shared `group` keeps one answer open at a time. `::part(container)` joins the accordions into a single card by collapsing the doubled borders and rounding only the outer corners. The card is a labeled `section`, and `heading-level` slots the questions into the page outline as level 2 headings. - [Accordion Sidebar Navigation](https://staticview.a-labs.space/llms/docs/sources/examples/accordion/sidebar-navigation.example.md): Nested accordions form a collapsible nav tree. `heading-level="none"` leaves the outline to the list structure, `marker="start"` reads as a tree toggle, and the parts strip the boxed look. - [Alert Stack: Basic](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/basic.example.md): `create()` adds an alert to the stack and `severity` picks its icon and color. Hover over the stack to expand it, or focus it with the keyboard. - [Alert Stack: Auto Dismiss](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/auto-dismiss.example.md): `duration` removes the alert after the given milliseconds. Expanding the stack postpones the timer, so an alert never disappears mid-read. - [Alert Stack: Action Button](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/action-button.example.md): `actionButton` replaces the default Dismiss button with a custom label and click handler. `create()` returns a function that removes the alert, and `actionButton: null` drops the button entirely. - [Alert Stack: Custom Icon](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/custom-icon.example.md): `iconOverride` receives the alert's severity and returns an element that replaces the default icon. A `part` attribute on the returned element makes it targetable from your stylesheet. - [Alert Stack: Position](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/position.example.md): The stack sits at the bottom end of the screen by default. `top`, `start`, and `center` move it, and they can be combined. - [Alert Stack: Swipe Dismiss](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/swipe-dismiss.example.md): `swipe-dismiss` on the stack lets cards be dragged away horizontally. `swipeToDismiss: false` opts a single alert out. - [Alert Stack: Limits](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/limits.example.md): `max-items` caps the stack and removes the oldest alert when exceeded. `max-expanded-items` sets how many cards the expanded stack shows. - [Alert Stack: Keyboard Shortcut](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/shortcut.example.md): `shortcut` sets the key combination that focuses and expands the stack, `Alt+A` here. `Tab` moves between the cards and `Escape` collapses the stack and returns focus. - [Alert Stack: Styling](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/styling.example.md): The cards read their own tokens, so overriding `--sv-info` or `--sv-alert-stack-bdr-rad` on the element restyles them. `--sv-alert-stack-dur` adjusts the animation speed, and the exposed parts cover the rest. - [Alert Stack Undo Delete](https://staticview.a-labs.space/llms/docs/sources/examples/alert-stack/undo-delete.example.md): Deleting a message hides its row and queues an alert instead of removing it right away. The Undo action restores the row and calls the dismiss function returned by `create()`. The `itemschange` event reports each alert as it starts leaving, and a row that is still hidden at that point is deleted for good. - [Anchor Example](https://staticview.a-labs.space/llms/docs/sources/examples/anchor/basic.example.md): Use `autoupdate` to reposition anchored content as its anchor moves. - [Code Editor: Basic](https://staticview.a-labs.space/llms/docs/sources/examples/code-editor/basic.example.md): The initial code comes from the slotted content, and the editor is a plain text area until a highlighter is assigned. `expand` grows it to fit the number of lines instead of scrolling inside a fixed height. - [Code Editor: Syntax Highlighting](https://staticview.a-labs.space/llms/docs/sources/examples/code-editor/highlighting.example.md): `highlighter` takes the whole code and returns the highlighted HTML for it, so any highlighting library works. The theme itself lives outside the shadow DOM, so `code-stylesheet` points at the `` or `