A clear place to start.
Bring related ideas together in one focused surface.
Reusable interface elements built from Kern’s shared styles.
<div class="k-alert" role="status" aria-labelledby="alert-default-title">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-alert-icon lucide lucide-info"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="M12 16v-4" />
<path d="M12 8h.01" />
</svg>
<h3 class="k-alert-title" id="alert-default-title">Update available</h3>
<div class="k-alert-description">
<p>
A new version is ready. The current version will remain available until the update is
installed.
</p>
</div>
</div>A new version is ready. The current version will remain available until the update is installed.
<div class="k-alert k-alert-success" role="status" aria-labelledby="alert-success-title">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-alert-icon lucide lucide-circle-check"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="m16 9-5.5 5.5L8 12" />
</svg>
<h3 class="k-alert-title" id="alert-success-title">Changes saved</h3>
<div class="k-alert-description"><p>The profile has been updated successfully.</p></div>
</div>The profile has been updated successfully.
<div class="k-alert k-alert-destructive" role="alert" aria-labelledby="alert-destructive-title">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-alert-icon lucide lucide-circle-alert"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<line x1="12" x2="12" y1="8" y2="12" />
<line x1="12" x2="12.01" y1="16" y2="16" />
</svg>
<h3 class="k-alert-title" id="alert-destructive-title">Upload failed</h3>
<div class="k-alert-description">
<p>The file could not be uploaded. Check the following before trying again:</p>
<ul>
<li>Use a supported file format.</li>
<li>Keep the file size below 10 MB.</li>
</ul>
</div>
</div>The file could not be uploaded. Check the following before trying again:
<div class="k-alert k-alert-warning" role="status" aria-labelledby="alert-warning-title">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-alert-icon lucide lucide-triangle-alert"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21.73 18-8-14a2 2 0 0 0-3.48 0l-8 14A2 2 0 0 0 4 21h16a2 2 0 0 0 1.73-3" />
<path d="M12 9v4" />
<path d="M12 17h.01" />
</svg>
<h3 class="k-alert-title" id="alert-warning-title">Review the settings</h3>
<div class="k-alert-description"><p>Check the configuration before continuing.</p></div>
<div class="k-alert-action">
<button type="button" class="k-button k-button-sm" onclick="Kern.toast('Settings reviewed.')">
Mark reviewed
</button>
</div>
</div>Check the configuration before continuing.
<div class="k-alert" role="status" aria-labelledby="alert-simple-title">
<h3 class="k-alert-title" id="alert-simple-title">All systems are operational.</h3>
</div><div class="flex flex-wrap items-center gap-4">
<span class="k-badge">Default</span>
<span class="k-badge k-badge-secondary">Secondary</span>
<span class="k-badge k-badge-destructive">Destructive</span>
<span class="k-badge k-badge-outline">Outline</span>
<a href="/typography/" class="k-badge k-badge-ghost">Ghost</a>
<a href="/typography/" class="k-badge k-badge-link">Link</a>
</div><div class="flex flex-wrap items-center gap-4">
<span class="k-badge k-badge-sm">Default</span>
<span class="k-badge k-badge-sm k-badge-secondary">Secondary</span>
<span class="k-badge k-badge-sm k-badge-destructive">Destructive</span>
<span class="k-badge k-badge-sm k-badge-outline">Outline</span>
<a href="/typography/" class="k-badge k-badge-sm k-badge-ghost">Ghost</a>
<a href="/typography/" class="k-badge k-badge-sm k-badge-link">Link</a>
</div><div class="flex flex-wrap items-center gap-4">
<span class="k-badge k-badge-secondary">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-circle-check"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="m16 9-5.5 5.5L8 12" />
</svg>
Verified
</span>
<a class="k-badge k-badge-outline" href="/sections/">
View sections
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-arrow-up-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M7 7h10v10" />
<path d="M7 17 17 7" />
</svg>
</a>
<span class="k-badge k-badge-outline"
><span class="size-1.5 shrink-0 rounded-full bg-current" aria-hidden="true"></span>Active</span
>
<span class="k-badge k-badge-secondary" role="status">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="animate-spin motion-reduce:animate-none lucide lucide-loader-circle"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 12a9 9 0 1 1-6.219-8.56" />
</svg>
Processing
</span>
</div><div class="flex flex-wrap items-center gap-4">
<span class="k-badge bg-blue-50 text-blue-700 dark:bg-blue-950 dark:text-blue-300"
>Information</span
>
<span class="k-badge bg-emerald-50 text-emerald-800 dark:bg-emerald-950 dark:text-emerald-300"
>Approved</span
>
<span class="k-badge bg-amber-50 text-amber-900 dark:bg-amber-950 dark:text-amber-300"
>Pending</span
>
<span class="k-badge bg-purple-50 text-purple-700 dark:bg-purple-950 dark:text-purple-300"
>Featured</span
>
<span class="k-badge k-badge-destructive">Error</span>
</div><span class="k-badge rounded-control">Default</span><div class="flex flex-wrap items-center gap-4">
<span class="k-badge rounded-control k-badge-sm">Default</span>
<span class="k-badge rounded-control k-badge-sm k-badge-secondary">Secondary</span>
<span class="k-badge rounded-control k-badge-sm k-badge-destructive">Destructive</span>
<span class="k-badge rounded-control k-badge-sm k-badge-outline">Outline</span>
<a href="/typography/" class="k-badge rounded-control k-badge-sm k-badge-ghost">Ghost</a>
<a href="/typography/" class="k-badge rounded-control k-badge-sm k-badge-link">Link</a>
</div><article class="k-card">
<h3 class="text-subhead-2xl">A clear place to start.</h3>
<p class="mt-4">Bring related ideas together in one focused surface.</p>
</article>Bring related ideas together in one focused surface.
<article class="k-card k-card-lg">
<h3 class="text-subhead-2xl">A clear place to start.</h3>
<p class="mt-4">Bring related ideas together in one focused surface.</p>
</article>Bring related ideas together in one focused surface.
<article class="k-card k-card-xl">
<h3 class="text-subhead-2xl">A clear place to start.</h3>
<p class="mt-4">Bring related ideas together in one focused surface.</p>
</article>Bring related ideas together in one focused surface.
<div class="flex flex-wrap gap-6">
<label class="k-checkbox"
><input type="checkbox" name="terms" /><span
class="k-checkbox-control"
aria-hidden="true"
></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Accept terms</span></span
></label
>
<label class="k-checkbox"
><input type="checkbox" name="updates" checked /><span
class="k-checkbox-control"
aria-hidden="true"
></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Enable updates</span></span
></label
>
</div><label class="k-checkbox"
><input
type="checkbox"
name="notifications"
aria-labelledby="checkbox-notifications-label"
aria-describedby="checkbox-notifications-description"
/><span class="k-checkbox-control" aria-hidden="true"></span
><span class="k-checkbox-content"
><span class="k-checkbox-label" id="checkbox-notifications-label">Enable notifications</span
><span class="k-checkbox-description" id="checkbox-notifications-description"
>Receive updates when there is new activity in a project.</span
></span
></label
><div class="flex flex-wrap gap-6">
<label class="k-checkbox"
><input type="checkbox" disabled /><span class="k-checkbox-control" aria-hidden="true"></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Disabled unchecked</span></span
></label
>
<label class="k-checkbox"
><input type="checkbox" checked disabled /><span
class="k-checkbox-control"
aria-hidden="true"
></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Disabled checked</span></span
></label
>
</div><label class="k-checkbox"
><input type="checkbox" data-k-indeterminate aria-labelledby="checkbox-mixed-label" /><span
class="k-checkbox-control"
aria-hidden="true"
></span
><span class="k-checkbox-content"
><span class="k-checkbox-label" id="checkbox-mixed-label">Partially selected</span></span
></label
><label class="k-checkbox"
><input
type="checkbox"
name="required-terms"
required
aria-invalid="true"
aria-labelledby="checkbox-invalid-label"
aria-describedby="checkbox-invalid-error"
/><span class="k-checkbox-control" aria-hidden="true"></span
><span class="k-checkbox-content"
><span class="k-checkbox-label" id="checkbox-invalid-label">Accept the terms</span
><span class="k-checkbox-error" id="checkbox-invalid-error"
>Accept the terms before continuing.</span
></span
></label
><label class="k-checkbox k-checkbox-card"
><input
type="checkbox"
name="project-updates"
checked
aria-labelledby="checkbox-card-label"
aria-describedby="checkbox-card-description"
/><span class="k-checkbox-control" aria-hidden="true"></span
><span class="k-checkbox-content"
><span class="k-checkbox-label" id="checkbox-card-label">Include project updates</span
><span class="k-checkbox-description" id="checkbox-card-description"
>Receive a weekly summary of progress and upcoming work.</span
></span
></label
><fieldset class="k-checkbox-group" data-k-checkbox-group>
<legend class="k-checkbox-label">Email preferences</legend>
<label class="k-checkbox"
><input type="checkbox" data-k-checkbox-all /><span
class="k-checkbox-control"
aria-hidden="true"
></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Select all email preferences</span></span
></label
><label class="k-checkbox"
><input
type="checkbox"
name="email-preferences"
value="project"
data-k-checkbox-item
checked
/><span class="k-checkbox-control" aria-hidden="true"></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Project updates</span></span
></label
><label class="k-checkbox"
><input type="checkbox" name="email-preferences" value="weekly" data-k-checkbox-item /><span
class="k-checkbox-control"
aria-hidden="true"
></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Weekly summaries</span></span
></label
><label class="k-checkbox"
><input type="checkbox" name="email-preferences" value="product" data-k-checkbox-item /><span
class="k-checkbox-control"
aria-hidden="true"
></span
><span class="k-checkbox-content"
><span class="k-checkbox-label">Product announcements</span></span
></label
>
</fieldset><div class="grid max-w-lg justify-items-start gap-4">
<h4 class="text-subhead-base">A system that grows with the work.</h4>
<p class="text-sm leading-lg">
Start with the essentials, then compose a distinct interface from shared elements.
</p>
<div
id="collapsible-more-panel"
class="k-collapsible"
role="region"
aria-labelledby="collapsible-more-trigger"
hidden
>
<div class="k-collapsible-content">
<p class="text-sm leading-lg">
Kern’s styles can travel between projects. Keep the base styles, include the components
needed, and use Tailwind utilities to adapt each layout.
</p>
</div>
</div>
<button
type="button"
id="collapsible-more-trigger"
class="k-button k-button-link k-button-sm group px-0"
data-k-collapsible
aria-controls="collapsible-more-panel"
aria-expanded="false"
>
<span class="group-aria-expanded:hidden">Show more</span>
<span class="hidden group-aria-expanded:inline">Show less</span>
</button>
</div>Start with the essentials, then compose a distinct interface from shared elements.
Kern’s styles can travel between projects. Keep the base styles, include the components needed, and use Tailwind utilities to adapt each layout.
<section>
<div class="k-container flex flex-wrap gap-4">
<button
type="button"
class="k-button"
data-k-dialog-open="dialog-confirm"
aria-haspopup="dialog"
aria-controls="dialog-confirm"
>
Show dialog
</button>
<button
type="button"
class="k-button"
data-k-dialog-open="dialog-small"
aria-haspopup="dialog"
aria-controls="dialog-small"
>
Small dialog
</button>
<button
type="button"
class="k-button"
data-k-dialog-open="dialog-delete"
aria-haspopup="dialog"
aria-controls="dialog-delete"
>
Destructive dialog
</button>
<dialog
class="k-dialog"
id="dialog-confirm"
role="alertdialog"
aria-labelledby="dialog-confirm-title"
aria-describedby="dialog-confirm-description"
>
<div class="k-dialog-content">
<div class="k-dialog-header">
<h3 class="k-dialog-title" id="dialog-confirm-title">Publish the changes?</h3>
<p class="k-dialog-description" id="dialog-confirm-description">
The latest changes will become visible to everyone with access to this project.
</p>
</div>
<div class="k-dialog-footer">
<button
type="button"
class="k-button"
data-k-dialog-close="cancel"
data-k-dialog-initial-focus
>
Cancel
</button>
<button type="button" class="k-button k-button-primary" data-k-dialog-close="confirm">
Publish changes
</button>
</div>
</div>
</dialog>
<dialog
class="k-dialog max-w-sm"
id="dialog-small"
role="alertdialog"
aria-labelledby="dialog-small-title"
aria-describedby="dialog-small-description"
>
<div class="k-dialog-content">
<div class="k-dialog-header">
<div class="k-dialog-media" aria-hidden="true">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-info"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="M12 16v-4" />
<path d="M12 8h.01" />
</svg>
</div>
<h3 class="k-dialog-title" id="dialog-small-title">Enable notifications?</h3>
<p class="k-dialog-description" id="dialog-small-description">
Receive updates when there is new activity in this project.
</p>
</div>
<div class="k-dialog-footer">
<button
type="button"
class="k-button"
data-k-dialog-close="cancel"
data-k-dialog-initial-focus
>
Not now
</button>
<button type="button" class="k-button k-button-primary" data-k-dialog-close="confirm">
Enable
</button>
</div>
</div>
</dialog>
<dialog
class="k-dialog"
id="dialog-delete"
role="alertdialog"
aria-labelledby="dialog-delete-title"
aria-describedby="dialog-delete-description"
>
<div class="k-dialog-content">
<div class="k-dialog-header">
<h3 class="k-dialog-title" id="dialog-delete-title">Delete this project?</h3>
<p class="k-dialog-description" id="dialog-delete-description">
This will permanently remove the project and its contents. This preview does not delete
any data.
</p>
</div>
<div class="k-dialog-footer">
<button
type="button"
class="k-button"
data-k-dialog-close="cancel"
data-k-dialog-initial-focus
>
Cancel
</button>
<button type="button" class="k-button k-button-destructive" data-k-dialog-close="confirm">
Delete project
</button>
</div>
</div>
</dialog>
</div>
</section><div class="space-y-8">
<details class="k-disclosure">
<summary>
<span>How are these sections reused?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Copy the HTML into a project that imports kern-base.css and kern-ui.css through Tailwind.
Replace the sample content and links.
</p>
</details>
<details class="k-disclosure">
<summary>
<span>Can the layouts be combined?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Yes. Place sections one after another inside a shared width container. Each section supplies
its own vertical spacing.
</p>
</details>
<details class="k-disclosure">
<summary>
<span>What changes on smaller screens?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Columns stack in reading order. Card padding reduces to 32px on phones, while the generous
layout gaps remain.
</p>
</details>
</div>Copy the HTML into a project that imports kern-base.css and kern-ui.css through Tailwind. Replace the sample content and links.
Yes. Place sections one after another inside a shared width container. Each section supplies its own vertical spacing.
Columns stack in reading order. Card padding reduces to 32px on phones, while the generous layout gaps remain.
<div class="space-y-8">
<details class="k-disclosure k-disclosure-arrow-right">
<summary>
<span>How are these sections reused?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Copy the HTML into a project that imports kern-base.css and kern-ui.css through Tailwind.
Replace the sample content and links.
</p>
</details>
<details class="k-disclosure k-disclosure-arrow-right">
<summary>
<span>Can the layouts be combined?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Yes. Place sections one after another inside a shared width container. Each section supplies
its own vertical spacing.
</p>
</details>
<details class="k-disclosure k-disclosure-arrow-right">
<summary>
<span>What changes on smaller screens?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Columns stack in reading order. Card padding reduces to 32px on phones, while the generous
layout gaps remain.
</p>
</details>
</div>Copy the HTML into a project that imports kern-base.css and kern-ui.css through Tailwind. Replace the sample content and links.
Yes. Place sections one after another inside a shared width container. Each section supplies its own vertical spacing.
Columns stack in reading order. Card padding reduces to 32px on phones, while the generous layout gaps remain.
<div class="divide-y divide-line w-full">
<details class="k-disclosure k-disclosure-sm k-disclosure-arrow-right">
<summary>
<span>Can Kern be used in other projects?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Yes. Copy the Kern assets into a project, import its styles, and use the example HTML as a
starting point.
</p>
</details>
<details class="k-disclosure k-disclosure-sm k-disclosure-arrow-right">
<summary>
<span>Does a disclosure need JavaScript?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
No. The native details and summary elements support mouse, touch, and keyboard interaction.
</p>
</details>
<details class="k-disclosure k-disclosure-sm k-disclosure-arrow-right">
<summary>
<span>Can more than one item stay open?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Yes. Leave out the name attribute to allow each disclosure to open independently.
</p>
</details>
</div>Yes. Copy the Kern assets into a project, import its styles, and use the example HTML as a starting point.
No. The native details and summary elements support mouse, touch, and keyboard interaction.
Yes. Leave out the name attribute to allow each disclosure to open independently.
<div class="divide-y divide-line rounded-card border border-line px-6 w-full">
<details class="k-disclosure k-disclosure-sm k-disclosure-arrow-right" open>
<summary>
<span>Can Kern be used in other projects?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Yes. Copy the Kern assets into a project, import its styles, and use the example HTML as a
starting point.
</p>
</details>
<details class="k-disclosure k-disclosure-sm k-disclosure-arrow-right">
<summary>
<span>Does a disclosure need JavaScript?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
No. The native details and summary elements support mouse, touch, and keyboard interaction.
</p>
</details>
<details class="k-disclosure k-disclosure-sm k-disclosure-arrow-right">
<summary>
<span>Can more than one item stay open?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content">
Yes. Leave out the name attribute to allow each disclosure to open independently.
</p>
</details>
</div>Yes. Copy the Kern assets into a project, import its styles, and use the example HTML as a starting point.
No. The native details and summary elements support mouse, touch, and keyboard interaction.
Yes. Leave out the name attribute to allow each disclosure to open independently.
<div class="w-full">
<details
name="kern-disclosure-exclusive"
class="k-disclosure k-disclosure-sm k-disclosure-arrow-right py-2"
>
<summary class="k-button k-button-ghost px-4 py-2 hover:no-underline">
<span>Can Kern be used in other projects?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content px-4 pt-4">
Yes. Copy the Kern assets into a project, import its styles, and use the example HTML as a
starting point.
</p>
</details>
<details
name="kern-disclosure-exclusive"
class="k-disclosure k-disclosure-sm k-disclosure-arrow-right py-2"
>
<summary class="k-button k-button-ghost px-4 py-2 hover:no-underline">
<span>Does a disclosure need JavaScript?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content px-4 pt-4">
No. The native details and summary elements support mouse, touch, and keyboard interaction.
</p>
</details>
<details
name="kern-disclosure-exclusive"
class="k-disclosure k-disclosure-sm k-disclosure-arrow-right py-2"
>
<summary class="k-button k-button-ghost px-4 py-2 hover:no-underline">
<span>How does this group behave?</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
class="k-disclosure-icon lucide lucide-chevron-down"
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<p class="k-disclosure-content px-4 pt-4">
Only one item stays open. A shared name on each details element lets the browser close the
other items automatically.
</p>
</details>
</div>Yes. Copy the Kern assets into a project, import its styles, and use the example HTML as a starting point.
No. The native details and summary elements support mouse, touch, and keyboard interaction.
Only one item stays open. A shared name on each details element lets the browser close the other items automatically.
<button
type="button"
id="dropdown-default-trigger"
class="k-button k-button-outline border-control"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="dropdown-default-menu"
>
Open menu<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</button>
<div
id="dropdown-default-menu"
class="k-dropdown animate-menu-in"
role="menu"
aria-labelledby="dropdown-default-trigger"
tabindex="-1"
popover="manual"
hidden
>
<a class="k-dropdown-item" role="menuitem" tabindex="-1" href="/typography/">Typography</a
><a class="k-dropdown-item" role="menuitem" tabindex="-1" href="/sections/">Sections</a
><button type="button" class="k-dropdown-item" disabled role="menuitem" tabindex="-1">
Unavailable
</button>
</div><button
type="button"
id="dropdown-grouped-trigger"
class="k-button k-button-outline border-control"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="dropdown-grouped-menu"
>
Project actions<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</button>
<div
id="dropdown-grouped-menu"
class="k-dropdown animate-menu-in"
role="menu"
aria-labelledby="dropdown-grouped-trigger"
tabindex="-1"
popover="manual"
hidden
>
<div class="px-3 py-2 text-sm font-medium" role="presentation">Project actions</div>
<button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<rect width="14" height="14" x="8" y="8" rx="2" ry="2" />
<path d="M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2" /></svg
>Copy project<kbd class="k-kbd ms-auto gap-1" aria-label="Command C"
><span>⌘</span><span>C</span></kbd
></button
><button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 15V3" />
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
<path d="m7 10 5 5 5-5" /></svg
>Download assets
</button>
<div class="my-1 border-t border-line" role="separator"></div>
<button
type="button"
class="k-dropdown-item text-red-700 dark:text-red-400"
role="menuitem"
tabindex="-1"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<line x1="12" x2="12" y1="8" y2="12" />
<line x1="12" x2="12.01" y1="16" y2="16" /></svg
>Delete project
</button>
</div><button
type="button"
id="dropdown-selection-trigger"
class="k-button k-button-outline border-control"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="dropdown-selection-menu"
>
View options<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</button>
<div
id="dropdown-selection-menu"
class="k-dropdown animate-menu-in"
role="menu"
aria-labelledby="dropdown-selection-trigger"
tabindex="-1"
popover="manual"
hidden
>
<div class="px-3 py-2 text-sm font-medium" role="presentation">View</div>
<button
type="button"
class="k-dropdown-item"
role="menuitemcheckbox"
aria-checked="true"
tabindex="-1"
data-value="sidebar"
>
Show sidebar<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="invisible ms-auto [[aria-checked=true]_&]:visible"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6 9 17l-5-5" />
</svg>
</button>
<button
type="button"
class="k-dropdown-item"
role="menuitemcheckbox"
aria-checked="false"
tabindex="-1"
data-value="guides"
>
Show guides<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="invisible ms-auto [[aria-checked=true]_&]:visible"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6 9 17l-5-5" />
</svg>
</button>
<div class="my-1 border-t border-line" role="separator"></div>
<div role="group" aria-labelledby="dropdown-density-label">
<div id="dropdown-density-label" class="px-3 py-2 text-sm font-medium">Density</div>
<button
type="button"
class="k-dropdown-item"
role="menuitemradio"
aria-checked="true"
tabindex="-1"
data-value="comfortable"
>
Comfortable<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="invisible ms-auto [[aria-checked=true]_&]:visible"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6 9 17l-5-5" />
</svg></button
><button
type="button"
class="k-dropdown-item"
role="menuitemradio"
aria-checked="false"
tabindex="-1"
data-value="compact"
>
Compact<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="invisible ms-auto [[aria-checked=true]_&]:visible"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6 9 17l-5-5" />
</svg>
</button>
</div>
</div><header class="k-header animate-header-menu" data-k-header>
<div class="k-container k-header-inner">
<a class="k-header-brand" href="#header-standard" aria-label="North home">North</a>
<div class="k-header-panel" id="kern-header-example-navigation">
<nav aria-label="Example header navigation">
<ul role="list" class="k-header-nav">
<li><a class="k-header-link" href="#header-standard">Work</a></li>
<li>
<a class="k-header-link" href="#header-standard" aria-current="page" data-current="true"
>Studio</a
>
</li>
<li><a class="k-header-link" href="#header-standard">Journal</a></li>
</ul>
</nav>
<a
class="k-button k-button-primary k-button-sm k-header-mobile-action"
href="#header-standard"
>Get in touch</a
>
</div>
<div class="k-header-actions">
<div id="north-appearance" data-k-theme class="relative shrink-0">
<button
id="north-appearance-toggle"
data-k-theme-toggle
type="button"
aria-label="Color scheme: System"
aria-expanded="false"
aria-controls="north-appearance-menu"
class="k-button k-button-ghost k-button-sm k-button-icon"
>
<span data-k-theme-icon class="inline-flex size-5 [&_svg]:size-full" aria-hidden="true"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="size-4 lucide lucide-eclipse"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="M12 2a7 7 0 1 0 10 10" /></svg
></span>
</button>
<div
id="north-appearance-menu"
data-k-theme-menu
hidden
class="animate-menu-in absolute right-0 top-full z-30 mt-2 w-44 rounded-card border border-line bg-canvas p-2 shadow-lg"
>
<fieldset>
<legend class="sr-only">Appearance</legend>
<div class="flex flex-col gap-1">
<button
type="button"
data-theme-option="system"
aria-pressed="false"
class="group relative flex w-full items-center gap-3 rounded-control px-3 py-2 text-sm hover:bg-surface aria-pressed:bg-surface"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="size-4 lucide lucide-eclipse"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="10" />
<path d="M12 2a7 7 0 1 0 10 10" /></svg
><span>System</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="ml-auto size-4 opacity-0 group-aria-pressed:opacity-100"
class="lucide lucide-check"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6 9 17l-5-5" />
</svg></button
><button
type="button"
data-theme-option="light"
aria-pressed="false"
class="group relative flex w-full items-center gap-3 rounded-control px-3 py-2 text-sm hover:bg-surface aria-pressed:bg-surface"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="size-4"
class="lucide lucide-sun"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="4" />
<path d="M12 2v2" />
<path d="M12 20v2" />
<path d="m4.93 4.93 1.41 1.41" />
<path d="m17.66 17.66 1.41 1.41" />
<path d="M2 12h2" />
<path d="M20 12h2" />
<path d="m6.34 17.66-1.41 1.41" />
<path d="m19.07 4.93-1.41 1.41" /></svg
><span>Light</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="ml-auto size-4 opacity-0 group-aria-pressed:opacity-100"
class="lucide lucide-check"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6 9 17l-5-5" />
</svg></button
><button
type="button"
data-theme-option="dark"
aria-pressed="false"
class="group relative flex w-full items-center gap-3 rounded-control px-3 py-2 text-sm hover:bg-surface aria-pressed:bg-surface"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="size-4"
class="lucide lucide-moon"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M20.985 12.486a9 9 0 1 1-9.473-9.472c.405-.022.617.46.402.803a6 6 0 0 0 8.268 8.268c.344-.215.825-.004.803.401"
/></svg
><span>Dark</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="ml-auto size-4 opacity-0 group-aria-pressed:opacity-100"
class="lucide lucide-check"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M20 6 9 17l-5-5" />
</svg>
</button>
</div>
</fieldset>
</div>
</div>
<a
class="k-button k-button-primary k-button-sm k-header-desktop-action"
href="#header-standard"
>Get in touch</a
>
<button
class="k-button k-button-ghost k-button-sm k-button-icon k-header-toggle"
type="button"
data-k-header-toggle
aria-expanded="false"
aria-controls="kern-header-example-navigation"
aria-label="Open navigation"
>
<span class="k-header-menu-icon"
><svg
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M4 5h16" />
<path d="M4 12h16" />
<path d="M4 19h16" />
</svg>
</span>
</button>
</div>
</div>
</header><header class="k-header animate-header-menu" data-k-header>
<div class="k-container k-header-inner">
<a class="k-header-brand" href="#header-dropdown" aria-label="Forma home">Forma</a>
<div class="k-header-panel" id="kern-header-dropdown-navigation">
<nav aria-label="Dropdown header navigation">
<ul role="list" class="k-header-nav">
<li>
<details
class="k-header-dropdown"
data-k-header-dropdown
name="kern-header-example-dropdowns"
>
<summary class="k-header-link" id="kern-header-product-trigger">
Product<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="k-header-dropdown-icon lucide lucide-chevron-down"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<div
class="k-header-submenu"
role="region"
aria-labelledby="kern-header-product-trigger"
>
<div class="k-header-submenu-group">
<ul role="list" class="k-header-submenu-list">
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Overview</span
><span>One place to plan and deliver work.</span></a
>
</li>
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Projects</span></a
>
</li>
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Collaboration</span></a
>
</li>
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Integrations</span></a
>
</li>
</ul>
</div>
</div>
</details>
</li>
<li>
<details
class="k-header-dropdown"
data-k-header-dropdown
name="kern-header-example-dropdowns"
>
<summary class="k-header-link" id="kern-header-resources-trigger">
Resources<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="k-header-dropdown-icon lucide lucide-chevron-down"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</summary>
<div
class="k-header-submenu"
role="region"
aria-labelledby="kern-header-resources-trigger"
>
<div class="k-header-submenu-group">
<p class="k-header-submenu-heading">Learn</p>
<ul role="list" class="k-header-submenu-list">
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Guides</span
><span>Practical ideas for better teamwork.</span></a
>
</li>
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Documentation</span></a
>
</li>
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Customer stories</span></a
>
</li>
</ul>
</div>
<div class="k-header-submenu-group">
<p class="k-header-submenu-heading">Connect</p>
<ul role="list" class="k-header-submenu-list">
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Community</span
><span>Meet the people building with Forma.</span></a
>
</li>
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Events</span></a
>
</li>
<li>
<a class="k-header-submenu-link" href="#header-dropdown"
><span class="font-medium">Support</span></a
>
</li>
</ul>
</div>
</div>
</details>
</li>
<li><a class="k-header-link" href="#header-dropdown">Pricing</a></li>
</ul>
</nav>
<a
class="k-button k-button-primary k-button-sm k-header-mobile-action"
href="#header-dropdown"
>Start free</a
>
</div>
<div class="k-header-actions">
<a
class="k-button k-button-primary k-button-sm k-header-desktop-action"
href="#header-dropdown"
>Start free</a
>
<button
class="k-button k-button-ghost k-button-sm k-button-icon k-header-toggle"
type="button"
data-k-header-toggle
aria-expanded="false"
aria-controls="kern-header-dropdown-navigation"
aria-label="Open navigation"
>
<span class="k-header-menu-icon"
><svg
aria-hidden="true"
focusable="false"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M4 5h16" />
<path d="M4 12h16" />
<path d="M4 19h16" />
</svg>
</span>
</button>
</div>
</div>
</header><div class="grid w-full max-w-sm gap-2">
<label for="input-name" class="text-sm font-medium">Project name</label>
<input
class="k-input"
id="input-name"
name="project-name"
type="text"
placeholder="Enter a project name"
aria-describedby="input-name-help"
/>
<p id="input-name-help" class="text-sm">A short, recognizable name.</p>
</div>A short, recognizable name.
<div class="grid w-full max-w-sm gap-2">
<label for="input-small" class="text-sm font-medium">Project name</label>
<input
class="k-input k-input-sm"
id="input-small"
name="project-name"
placeholder="Enter a project name"
/>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="kern-password-standard" class="text-sm font-medium">Password</label>
<div class="k-input-group">
<input
class="k-input"
id="kern-password-standard"
name="password"
type="password"
autocomplete="current-password"
placeholder="Enter a password"
/>
<span class="k-input-group-addon k-input-group-addon-end">
<button
class="k-button k-button-ghost k-button-sm k-button-icon group"
type="button"
data-k-password-toggle
aria-controls="kern-password-standard"
aria-label="Show password"
aria-pressed="false"
disabled
>
<svg
aria-hidden="true"
focusable="false"
class="group-aria-pressed:hidden"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"
/>
<circle cx="12" cy="12" r="3" />
</svg>
<svg
aria-hidden="true"
focusable="false"
class="hidden group-aria-pressed:block"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"
/>
<path d="M14.084 14.158a3 3 0 0 1-4.242-4.242" />
<path
d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"
/>
<path d="m2 2 20 20" />
</svg>
</button>
</span>
</div>
</div>
<div class="grid gap-2">
<label for="kern-password-small" class="text-sm font-medium">New password</label>
<div class="k-input-group k-input-group-sm">
<input
class="k-input"
id="kern-password-small"
name="new-password"
type="password"
autocomplete="new-password"
placeholder="Enter a password"
/>
<span class="k-input-group-addon k-input-group-addon-end">
<button
class="k-button k-button-ghost k-button-sm k-button-icon min-h-6 w-6 group"
type="button"
data-k-password-toggle
aria-controls="kern-password-small"
aria-label="Show new password"
aria-pressed="false"
disabled
>
<svg
aria-hidden="true"
focusable="false"
class="group-aria-pressed:hidden"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0"
/>
<circle cx="12" cy="12" r="3" />
</svg>
<svg
aria-hidden="true"
focusable="false"
class="hidden group-aria-pressed:block"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49"
/>
<path d="M14.084 14.158a3 3 0 0 1-4.242-4.242" />
<path
d="M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143"
/>
<path d="m2 2 20 20" />
</svg>
</button>
</span>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label class="text-sm font-medium" for="kern-number-quantity">Quantity</label>
<input
class="k-input"
id="kern-number-quantity"
name="quantity"
type="number"
min="1"
max="99"
step="1"
value="1"
aria-describedby="kern-number-quantity-hint"
/>
<p class="text-sm" id="kern-number-quantity-hint">Choose between 1 and 99 items.</p>
</div>
<div class="grid gap-2">
<label class="text-sm font-medium" for="kern-number-amount">Amount</label>
<input
class="k-input k-input-sm"
id="kern-number-amount"
name="amount"
type="number"
min="0"
step="0.5"
value="25"
aria-describedby="kern-number-amount-hint"
/>
<p class="text-sm" id="kern-number-amount-hint">Adjust in increments of 0.5.</p>
</div>
</div>Choose between 1 and 99 items.
Adjust in increments of 0.5.
<div class="grid w-full max-w-sm gap-2">
<label for="input-reference" class="text-sm font-medium">Project reference</label>
<input
class="k-input"
id="input-reference"
name="reference"
value="KERN-001"
readonly
aria-describedby="input-reference-help"
/>
<p id="input-reference-help" class="text-sm">This reference can be selected and copied.</p>
</div>This reference can be selected and copied.
<div class="grid w-full max-w-sm gap-2">
<label for="input-disabled" class="text-sm font-medium">Project name</label>
<input
class="k-input"
id="input-disabled"
value="Unavailable"
disabled
aria-describedby="input-disabled-help"
/>
<p id="input-disabled-help" class="text-sm">This field is currently unavailable.</p>
</div>This field is currently unavailable.
<div class="grid w-full max-w-sm gap-2">
<label for="input-invalid" class="text-sm font-medium">Email address</label>
<input
class="k-input"
id="input-invalid"
name="email"
type="email"
value="jordan@"
aria-invalid="true"
aria-describedby="input-invalid-error"
/>
<p id="input-invalid-error" class="text-sm text-red-700 dark:text-red-400">
Enter a complete email address.
</p>
</div>Enter a complete email address.
<div class="grid w-full max-w-sm gap-2">
<label for="input-success" class="text-sm font-medium">Project URL</label>
<input
class="k-input border-emerald-600 dark:border-emerald-400"
id="input-success"
name="project-url"
type="url"
value="https://example.com"
aria-invalid="false"
aria-describedby="input-success-help"
/>
<p id="input-success-help" class="text-sm text-emerald-700 dark:text-emerald-400">
This URL is available.
</p>
</div>This URL is available.
<div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="input-file" class="text-sm font-medium">Project image</label>
<input
class="k-input"
id="input-file"
name="image"
type="file"
accept="image/*"
aria-describedby="input-file-help"
/>
<p id="input-file-help" class="text-sm">Choose an image from this device.</p>
</div>
<div class="grid gap-2">
<label for="input-file-small" class="text-sm font-medium">Attachment</label>
<input class="k-input k-input-sm" id="input-file-small" name="attachment" type="file" />
</div>
</div>Choose an image from this device.
<div class="grid w-full max-w-sm gap-2">
<label for="input-required" class="text-sm font-medium"
>Email address <span aria-hidden="true">*</span></label
>
<input
class="k-input"
id="input-required"
name="email"
type="email"
autocomplete="email"
placeholder="jordan@example.com"
required
aria-describedby="input-required-help"
/>
<p id="input-required-help" class="text-sm">An email address is required.</p>
</div>An email address is required.
<div class="grid w-full max-w-lg gap-6 sm:grid-cols-2">
<div class="grid gap-2">
<label for="input-first-name" class="text-sm font-medium">First name</label>
<input
class="k-input"
id="input-first-name"
name="given-name"
autocomplete="given-name"
placeholder="Jordan"
/>
</div>
<div class="grid gap-2">
<label for="input-last-name" class="text-sm font-medium">Last name</label>
<input
class="k-input"
id="input-last-name"
name="family-name"
autocomplete="family-name"
placeholder="Lee"
/>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label for="input-webhook" class="flex items-center justify-between gap-3 text-sm font-medium"
>Webhook URL <span class="k-badge k-badge-sm k-badge-secondary">Optional</span></label
>
<input
class="k-input"
id="input-webhook"
name="webhook"
type="url"
placeholder="https://example.com/webhook"
/>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="ig-search" class="text-sm font-medium">Search</label>
<div class="k-input-group">
<input
id="ig-search"
class="k-input"
type="search"
name="search"
placeholder="Search projects"
/><span class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-search"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21 21-4.34-4.34" />
<circle cx="11" cy="11" r="8" /></svg
></span>
</div>
</div>
<div class="grid gap-2">
<label for="ig-email" class="text-sm font-medium">Email address</label>
<div class="k-input-group">
<input
id="ig-email"
class="k-input"
type="email"
name="email"
autocomplete="email"
placeholder="jordan@example.com"
/><span class="k-input-group-addon k-input-group-addon-end"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-mail"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" />
<rect x="2" y="4" width="20" height="16" rx="2" /></svg
></span>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="ig-small" class="text-sm font-medium">Quick search</label>
<div class="k-input-group k-input-group-sm">
<input id="ig-small" class="k-input" type="search" placeholder="Search projects" /><span
class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-search"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21 21-4.34-4.34" />
<circle cx="11" cy="11" r="8" /></svg
></span>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="ig-price" class="text-sm font-medium">Price</label>
<div class="k-input-group">
<span class="k-input-group-addon">$</span
><input
id="ig-price"
class="k-input"
type="number"
min="0"
step="0.01"
name="price"
placeholder="0.00"
aria-describedby="ig-price-currency"
/><span class="k-input-group-addon k-input-group-addon-end"
><span id="ig-price-currency">USD</span></span
>
</div>
</div>
<div class="grid gap-2">
<label for="ig-site" class="text-sm font-medium">Website</label>
<div class="k-input-group">
<span class="k-input-group-addon"><span id="ig-site-prefix">https://</span></span
><input
id="ig-site"
class="k-input"
name="website"
placeholder="example.com"
aria-describedby="ig-site-prefix"
/>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="ig-domain" class="text-sm font-medium">Domain</label>
<div class="k-input-group">
<span class="k-input-group-addon k-input-group-addon-block-start">Website address</span
><input
id="ig-domain"
class="k-input"
name="domain"
placeholder="example.com"
aria-describedby="ig-domain-help"
/><span class="k-input-group-addon k-input-group-addon-block-end"
><span id="ig-domain-help">Enter a domain without the protocol.</span></span
>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="ig-invalid" class="text-sm font-medium">Email address</label>
<div class="k-input-group">
<input
id="ig-invalid"
class="k-input"
type="email"
name="email"
value="jordan@"
aria-invalid="true"
aria-describedby="ig-invalid-error"
/><span class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-mail"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7" />
<rect x="2" y="4" width="20" height="16" rx="2" /></svg
></span>
</div>
<p id="ig-invalid-error" class="text-sm text-red-700 dark:text-red-400">
Enter a complete email address.
</p>
</div>
</div>Enter a complete email address.
<div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="ig-disabled" class="text-sm font-medium">Search</label>
<div class="k-input-group">
<input
id="ig-disabled"
class="k-input"
type="search"
placeholder="Search is unavailable"
disabled
/><span class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-search"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21 21-4.34-4.34" />
<circle cx="11" cy="11" r="8" /></svg
></span>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label for="ig-keyboard" class="text-sm font-medium">Search</label>
<div class="k-input-group">
<span class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21 21-4.34-4.34" />
<circle cx="11" cy="11" r="8" />
</svg>
</span>
<input
class="k-input"
id="ig-keyboard"
type="search"
name="search"
placeholder="Search the library"
/>
<span class="k-input-group-addon k-input-group-addon-end">
<kbd class="k-kbd gap-1" aria-label="Command K">
<span>⌘</span>
<span>K</span>
</kbd></span
>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label for="ig-dropdown-search" class="text-sm font-medium">Search resources</label>
<div class="k-input-group">
<input
class="k-input"
id="ig-dropdown-search"
type="search"
name="query"
placeholder="Enter a search query"
/>
<span class="k-input-group-addon k-input-group-addon-end">
<button
type="button"
class="k-button k-button-ghost k-button-sm"
id="ig-dropdown-trigger"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="ig-dropdown-menu"
aria-label="Browse resource categories"
>
Browse
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</button>
</span>
</div>
<div
class="k-dropdown animate-menu-in"
id="ig-dropdown-menu"
role="menu"
aria-labelledby="ig-dropdown-trigger"
tabindex="-1"
data-k-placement="bottom-end"
popover="manual"
hidden
>
<a href="/typography/" class="k-dropdown-item" role="menuitem" tabindex="-1">Typography</a>
<a href="/components/" class="k-dropdown-item" role="menuitem" tabindex="-1">Components</a>
<a href="/sections/" class="k-dropdown-item" role="menuitem" tabindex="-1">Sections</a>
</div>
</div><div class="grid w-full max-w-lg gap-2">
<label for="ig-comment" class="text-sm font-medium">Project note</label>
<div class="k-input-group">
<textarea
class="k-input field-sizing-content"
id="ig-comment"
name="note"
rows="3"
maxlength="280"
placeholder="Write a project note…"
aria-describedby="ig-comment-help"
></textarea>
<div class="k-input-group-addon k-input-group-addon-block-end">
<span id="ig-comment-help" class="text-xs">Up to 280 characters</span>
<button type="button" class="k-button k-button-primary k-button-sm ms-auto">Add note</button>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-2">
<label for="ig-loading-search" class="text-sm font-medium">Search projects</label>
<div class="k-input-group">
<input
class="k-input"
id="ig-loading-search"
placeholder="Searching…"
aria-busy="true"
aria-describedby="ig-loading-search-status"
/>
<span class="k-input-group-addon k-input-group-addon-end"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="animate-spin motion-reduce:animate-none"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 12a9 9 0 1 1-6.219-8.56" /></svg
></span>
</div>
<span class="sr-only" id="ig-loading-search-status" role="status">Searching…</span>
</div>
<div class="grid gap-2">
<label for="ig-loading-process" class="text-sm font-medium">Project reference</label>
<div class="k-input-group">
<input
class="k-input"
id="ig-loading-process"
placeholder="Processing…"
aria-busy="true"
aria-describedby="ig-loading-process-status"
/>
<span class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="animate-spin motion-reduce:animate-none"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 12a9 9 0 1 1-6.219-8.56" /></svg
></span>
</div>
<span class="sr-only" id="ig-loading-process-status" role="status">Processing…</span>
</div>
<div class="grid gap-2">
<label for="ig-loading-save" class="text-sm font-medium">Project name</label>
<div class="k-input-group">
<input
class="k-input"
id="ig-loading-save"
placeholder="Saving changes…"
aria-busy="true"
aria-describedby="ig-loading-save-status"
/>
<span class="k-input-group-addon k-input-group-addon-end"
><span id="ig-loading-save-status" role="status">Saving…</span
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="animate-spin motion-reduce:animate-none"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M21 12a9 9 0 1 1-6.219-8.56" /></svg
></span>
</div>
</div>
<div class="grid gap-2">
<label for="ig-loading-refresh" class="text-sm font-medium">Data source</label>
<div class="k-input-group">
<input
class="k-input"
id="ig-loading-refresh"
placeholder="Refreshing data…"
aria-busy="true"
aria-describedby="ig-loading-refresh-status"
/>
<span class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="animate-spin motion-reduce:animate-none"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 2v4" />
<path d="m16.2 7.8 2.9-2.9" />
<path d="M18 12h4" />
<path d="m16.2 16.2 2.9 2.9" />
<path d="M12 18v4" />
<path d="m4.9 19.1 2.9-2.9" />
<path d="M2 12h4" />
<path d="m4.9 4.9 2.9 2.9" /></svg></span
><span
class="k-input-group-addon k-input-group-addon-end"
id="ig-loading-refresh-status"
role="status"
>Please wait…</span
>
</div>
</div>
</div><div class="grid w-full max-w-md gap-6">
<div class="k-item border border-line">
<div class="k-item-content">
<p class="k-item-title">Account details</p>
<p class="k-item-description">An item with supporting content and a trailing action.</p>
</div>
<div class="k-item-actions">
<button type="button" class="k-button k-button-outline k-button-sm">Action</button>
</div>
</div>
<a class="k-item k-item-sm border border-line" href="/typography/">
<div class="k-item-media">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-badge-check"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M3.85 8.62a4 4 0 0 1 4.78-4.77 4 4 0 0 1 6.74 0 4 4 0 0 1 4.78 4.78 4 4 0 0 1 0 6.74 4 4 0 0 1-4.77 4.78 4 4 0 0 1-6.75 0 4 4 0 0 1-4.78-4.77 4 4 0 0 1 0-6.76Z"
/>
<path d="m16 9-5.5 5.5L8 12" />
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Profile verification complete</p>
</div>
<div class="k-item-actions">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
</div>
</a>
</div>Account details
An item with supporting content and a trailing action.
Profile verification complete
<div class="grid w-full max-w-md gap-6">
<div class="k-item">
<div class="k-item-media k-item-media-icon">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-inbox"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 12 16 12 14 15 10 15 8 12 2 12" />
<path
d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
/>
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Default</p>
<p class="k-item-description">An unframed row for everyday content.</p>
</div>
</div>
<div class="k-item border border-line">
<div class="k-item-media k-item-media-icon">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-inbox"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 12 16 12 14 15 10 15 8 12 2 12" />
<path
d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
/>
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Outline</p>
<p class="k-item-description">A border separates the item from its surroundings.</p>
</div>
</div>
<div class="k-item bg-surface">
<div class="k-item-media k-item-media-icon bg-canvas">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-inbox"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 12 16 12 14 15 10 15 8 12 2 12" />
<path
d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
/>
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Surface</p>
<p class="k-item-description">A filled background gives the row more emphasis.</p>
</div>
</div>
</div>Default
An unframed row for everyday content.
Outline
A border separates the item from its surroundings.
Surface
A filled background gives the row more emphasis.
<div class="grid w-full max-w-md gap-6">
<div class="k-item border border-line">
<div class="k-item-media k-item-media-icon">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-inbox"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 12 16 12 14 15 10 15 8 12 2 12" />
<path
d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
/>
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Standard</p>
<p class="k-item-description">Room for primary and supporting content.</p>
</div>
</div>
<div class="k-item k-item-sm border border-line">
<div class="k-item-media k-item-media-icon">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-inbox"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 12 16 12 14 15 10 15 8 12 2 12" />
<path
d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
/>
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Small</p>
<p class="k-item-description">Tighter spacing for a compact list.</p>
</div>
</div>
<div class="k-item k-item-xs border border-line">
<div class="k-item-media k-item-media-icon">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-inbox"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<polyline points="22 12 16 12 14 15 10 15 8 12 2 12" />
<path
d="M5.45 5.11 2 12v6a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-6l-3.45-6.89A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z"
/>
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Extra small</p>
<p class="k-item-description">A dense row for menus and short lists.</p>
</div>
</div>
</div>Standard
Room for primary and supporting content.
Small
Tighter spacing for a compact list.
Extra small
A dense row for menus and short lists.
<div class="grid w-full max-w-md gap-6">
<div class="k-item border border-line">
<div class="k-item-media k-item-media-icon">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-shield-alert"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path
d="M20 13c0 5-3.5 7.5-7.66 8.95a1 1 0 0 1-.67-.01C7.5 20.5 4 18 4 13V6a1 1 0 0 1 1-1c2 0 4.5-1.2 6.24-2.72a1.17 1.17 0 0 1 1.52 0C14.51 3.81 17 5 19 5a1 1 0 0 1 1 1z"
/>
<path d="M12 8v4" />
<path d="M12 16h.01" />
</svg>
</div>
<div class="k-item-content">
<p class="k-item-title">Unrecognized sign-in</p>
<p class="k-item-description">A new device recently accessed this account.</p>
</div>
<div class="k-item-actions">
<button type="button" class="k-button k-button-outline k-button-sm">Review</button>
</div>
</div>
</div>Unrecognized sign-in
A new device recently accessed this account.
<div class="grid w-full max-w-md gap-6">
<div class="k-item border border-line">
<div class="k-item-media">
<img
class="size-10 rounded-full object-cover"
src="https://images.unsplash.com/photo-1573497019236-17f8177b81e8?w=80&h=80&fit=crop&auto=format"
alt=""
width="40"
height="40"
loading="lazy"
/>
</div>
<div class="k-item-content">
<p class="k-item-title">Alex Morgan</p>
<p class="k-item-description">Active earlier this week</p>
</div>
<div class="k-item-actions">
<button
type="button"
class="k-button k-button-outline k-button-sm k-button-icon rounded-full"
aria-label="Invite Alex Morgan"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-plus"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 12h14" />
<path d="M12 5v14" />
</svg>
</button>
</div>
</div>
<div class="k-item border border-line">
<div class="k-item-media">
<span class="flex -space-x-3"
><img
class="size-10 ring-2 ring-canvas rounded-full object-cover"
src="https://images.unsplash.com/photo-1573497019236-17f8177b81e8?w=80&h=80&fit=crop&auto=format"
alt=""
width="40"
height="40"
loading="lazy" /><img
class="size-10 ring-2 ring-canvas rounded-full object-cover"
src="https://images.unsplash.com/photo-1750390200282-bf7f669a9946?w=80&h=80&fit=crop&auto=format"
alt=""
width="40"
height="40"
loading="lazy" /><img
class="size-10 ring-2 ring-canvas rounded-full object-cover"
src="https://images.unsplash.com/photo-1750390200293-92d5a788d3a2?w=80&h=80&fit=crop&auto=format"
alt=""
width="40"
height="40"
loading="lazy"
/></span>
</div>
<div class="k-item-content">
<p class="k-item-title">Workspace members</p>
<p class="k-item-description">Bring collaborators into the workspace.</p>
</div>
<div class="k-item-actions">
<button type="button" class="k-button k-button-outline k-button-sm">Invite</button>
</div>
</div>
</div>Alex Morgan
Active earlier this week
Workspace members
Bring collaborators into the workspace.
<ul class="grid w-full max-w-md gap-3" aria-label="Playlist">
<li>
<a class="k-item border border-line" href="/sections/">
<div class="k-item-media k-item-media-image">
<img
src="https://images.unsplash.com/photo-1605084198811-7a358b91dc15?w=80&h=80&fit=crop&auto=format"
alt=""
width="80"
height="80"
loading="lazy"
/>
</div>
<div class="k-item-content">
<p class="k-item-title">After the city sleeps</p>
<p class="k-item-description">Night Signals</p>
</div>
<div class="k-item-actions">
<span class="text-sm">3:45<span class="sr-only"> minutes</span></span>
</div>
</a>
</li>
<li>
<a class="k-item border border-line" href="/sections/">
<div class="k-item-media k-item-media-image">
<img
src="https://images.unsplash.com/photo-1578500494198-246f612d3b3d?w=80&h=80&fit=crop&auto=format"
alt=""
width="80"
height="80"
loading="lazy"
/>
</div>
<div class="k-item-content">
<p class="k-item-title">Morning conversations</p>
<p class="k-item-description">Slow Hours</p>
</div>
<div class="k-item-actions">
<span class="text-sm">4:05<span class="sr-only"> minutes</span></span>
</div>
</a>
</li>
<li>
<a class="k-item border border-line" href="/sections/">
<div class="k-item-media k-item-media-image">
<img
src="https://images.unsplash.com/photo-1592765213254-f101ad9b8f76?w=80&h=80&fit=crop&auto=format"
alt=""
width="80"
height="80"
loading="lazy"
/>
</div>
<div class="k-item-content">
<p class="k-item-title">Patterns in the rain</p>
<p class="k-item-description">Quiet Machines</p>
</div>
<div class="k-item-actions">
<span class="text-sm">3:30<span class="sr-only"> minutes</span></span>
</div>
</a>
</li>
</ul><ul class="grid w-full max-w-md gap-3" aria-label="Workspace members">
<li>
<div class="k-item border border-line">
<div class="k-item-media">
<img
class="size-10 rounded-full object-cover"
src="https://images.unsplash.com/photo-1573497019236-17f8177b81e8?w=80&h=80&fit=crop&auto=format"
alt=""
width="40"
height="40"
loading="lazy"
/>
</div>
<div class="k-item-content">
<p class="k-item-title">Alex Morgan</p>
<p class="k-item-description">alex@example.com</p>
</div>
<div class="k-item-actions">
<button
type="button"
class="k-button k-button-ghost k-button-sm k-button-icon rounded-full"
aria-label="Add Alex Morgan"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-plus"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 12h14" />
<path d="M12 5v14" />
</svg>
</button>
</div>
</div>
</li>
<li>
<div class="k-item border border-line">
<div class="k-item-media">
<img
class="size-10 rounded-full object-cover"
src="https://images.unsplash.com/photo-1750390200282-bf7f669a9946?w=80&h=80&fit=crop&auto=format"
alt=""
width="40"
height="40"
loading="lazy"
/>
</div>
<div class="k-item-content">
<p class="k-item-title">Sam Rivera</p>
<p class="k-item-description">sam@example.com</p>
</div>
<div class="k-item-actions">
<button
type="button"
class="k-button k-button-ghost k-button-sm k-button-icon rounded-full"
aria-label="Add Sam Rivera"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-plus"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 12h14" />
<path d="M12 5v14" />
</svg>
</button>
</div>
</div>
</li>
<li>
<div class="k-item border border-line">
<div class="k-item-media">
<img
class="size-10 rounded-full object-cover"
src="https://images.unsplash.com/photo-1750390200293-92d5a788d3a2?w=80&h=80&fit=crop&auto=format"
alt=""
width="40"
height="40"
loading="lazy"
/>
</div>
<div class="k-item-content">
<p class="k-item-title">Jamie Chen</p>
<p class="k-item-description">jamie@example.com</p>
</div>
<div class="k-item-actions">
<button
type="button"
class="k-button k-button-ghost k-button-sm k-button-icon rounded-full"
aria-label="Add Jamie Chen"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-plus"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 12h14" />
<path d="M12 5v14" />
</svg>
</button>
</div>
</div>
</li>
</ul>Alex Morgan
alex@example.com
Sam Rivera
sam@example.com
Jamie Chen
jamie@example.com
<div class="grid w-full max-w-md gap-6">
<a class="k-item" href="/typography/">
<div class="k-item-content">
<p class="k-item-title">Explore the guidelines</p>
<p class="k-item-description">Read the typography and layout conventions.</p>
</div>
<div class="k-item-actions">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
</div>
</a>
<a
class="k-item border border-line"
href="https://startingpointui.com/components/item"
target="_blank"
rel="noopener noreferrer"
>
<div class="k-item-content">
<p class="k-item-title">Starting Point UI</p>
<p class="k-item-description">Explore the reference library in a new tab.</p>
</div>
<div class="k-item-actions">
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-external-link"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M15 3h6v6" />
<path d="M10 14 21 3" />
<path d="M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6" />
</svg>
<span class="sr-only">Opens in a new tab</span>
</div>
</a>
</div><button
type="button"
id="item-dropdown-trigger"
class="k-button k-button-outline border-control"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="item-dropdown-menu"
>
Choose a member<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-chevron-down"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m6 9 6 6 6-6" />
</svg>
</button>
<div
id="item-dropdown-menu"
class="k-dropdown animate-menu-in w-72"
role="menu"
aria-labelledby="item-dropdown-trigger"
tabindex="-1"
popover="manual"
hidden
>
<button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1">
<span class="k-item k-item-xs">
<span class="k-item-media"
><img
class="size-8 rounded-full object-cover"
src="https://images.unsplash.com/photo-1573497019236-17f8177b81e8?w=80&h=80&fit=crop&auto=format"
alt=""
width="32"
height="32"
loading="lazy"
/></span>
<span class="k-item-content"
><span class="k-item-title">Alex Morgan</span
><span class="k-item-description">alex@example.com</span></span
>
</span></button
><button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1">
<span class="k-item k-item-xs">
<span class="k-item-media"
><img
class="size-8 rounded-full object-cover"
src="https://images.unsplash.com/photo-1750390200282-bf7f669a9946?w=80&h=80&fit=crop&auto=format"
alt=""
width="32"
height="32"
loading="lazy"
/></span>
<span class="k-item-content"
><span class="k-item-title">Sam Rivera</span
><span class="k-item-description">sam@example.com</span></span
>
</span></button
><button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1">
<span class="k-item k-item-xs">
<span class="k-item-media"
><img
class="size-8 rounded-full object-cover"
src="https://images.unsplash.com/photo-1750390200293-92d5a788d3a2?w=80&h=80&fit=crop&auto=format"
alt=""
width="32"
height="32"
loading="lazy"
/></span>
<span class="k-item-content"
><span class="k-item-title">Jamie Chen</span
><span class="k-item-description">jamie@example.com</span></span
>
</span>
</button>
</div><div class="flex flex-wrap items-center gap-3">
<kbd class="k-kbd" aria-label="Command">⌘</kbd>
<kbd class="k-kbd" aria-label="Shift">⇧</kbd>
<kbd class="k-kbd" aria-label="Option">⌥</kbd>
<kbd class="k-kbd" aria-label="Control">⌃</kbd>
<kbd class="k-kbd">Ctrl</kbd>
<kbd class="k-kbd">Esc</kbd>
<kbd class="k-kbd">Enter</kbd>
<kbd class="k-kbd">K</kbd>
</div><div class="grid gap-6 text-sm">
<span class="k-kbd-group" aria-label="Command Shift K">
<kbd class="k-kbd" aria-label="Command">⌘</kbd>
<kbd class="k-kbd" aria-label="Shift">⇧</kbd>
<kbd class="k-kbd">K</kbd>
</span>
<span class="k-kbd-group" aria-label="Control plus B">
<kbd class="k-kbd">Ctrl</kbd><span aria-hidden="true">+</span><kbd class="k-kbd">B</kbd>
</span>
<p>
Press
<span class="k-kbd-group"
><kbd class="k-kbd">Ctrl + K</kbd> then <kbd class="k-kbd">Ctrl + C</kbd></span
>
to comment the selection.
</p>
</div>Press Ctrl + K then Ctrl + C to comment the selection.
<div class="grid w-full max-w-sm gap-2">
<label for="kbd-search" class="text-sm font-medium">Search</label>
<div class="k-input-group">
<span class="k-input-group-addon"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class=""
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21 21-4.34-4.34" />
<circle cx="11" cy="11" r="8" />
</svg>
</span>
<input
class="k-input"
id="kbd-search"
type="search"
name="search"
placeholder="Search the library"
/>
<span class="k-input-group-addon k-input-group-addon-end"
><span class="k-kbd-group" aria-hidden="true">
<kbd class="k-kbd gap-1" aria-label="Command K">
<span>⌘</span>
<span>K</span>
</kbd></span
></span
>
</div>
</div><div class="flex flex-wrap items-center gap-6 text-sm">
<a class="k-link" href="/typography/">Explore typography</a>
<a class="k-link" href="/sections/">Browse sections</a>
</div><div class="flex flex-wrap items-center gap-6 text-sm">
<a class="k-link k-link-subtle" href="/typography/">Typography</a>
<a class="k-link k-link-subtle" href="/sections/">Sections</a>
</div><div class="flex flex-wrap items-center gap-6 text-sm">
<a class="k-link" href="/sections/"
>Explore sections
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-arrow-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M5 12h14" />
<path d="m12 5 7 7-7 7" />
</svg>
</a>
<a class="k-link" href="/kern-base.css" download
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-download"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M12 15V3" />
<path d="M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4" />
<path d="m7 10 5 5 5-5" />
</svg>
Download CSS</a
>
</div><a class="k-link text-sm" href="https://lucide.dev" target="_blank" rel="noopener noreferrer"
>Lucide Icons
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-arrow-up-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="M7 7h10v10" />
<path d="M7 17 17 7" />
</svg>
<span class="sr-only"> (opens in a new tab)</span></a
><div class="flex flex-wrap items-center gap-6">
<a class="k-link text-sm" href="/typography/">Small link</a>
<a class="k-link text-base" href="/typography/">Base link</a>
<a class="k-link text-lg" href="/typography/">Large link</a>
</div><nav class="k-pagination" aria-label="Standard pagination">
<a
class="k-pagination-item max-sm:w-10 max-sm:p-0"
aria-label="Previous page"
rel="prev"
href="?page=1#pagination-standard"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rotate-180 rtl:rotate-0 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
<span class="max-sm:sr-only">Previous</span></a
><a class="k-pagination-item" href="?page=1#pagination-standard" aria-label="Page 1">1</a
><a
class="k-pagination-item"
href="?page=2#pagination-standard"
aria-label="Page 2"
aria-current="page"
>2</a
><a class="k-pagination-item" href="?page=3#pagination-standard" aria-label="Page 3">3</a
><span class="k-pagination-ellipsis"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-ellipsis"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
<span class="sr-only">More pages</span></span
><a class="k-pagination-item" href="?page=10#pagination-standard" aria-label="Page 10">10</a
><a
class="k-pagination-item max-sm:w-10 max-sm:p-0"
aria-label="Next page"
rel="next"
href="?page=3#pagination-standard"
><span class="max-sm:sr-only">Next</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rtl:rotate-180 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
</a>
</nav><nav class="k-pagination k-pagination-sm" aria-label="Small pagination">
<a
class="k-pagination-item max-sm:w-8 max-sm:p-0"
aria-label="Previous page"
rel="prev"
href="?page=1#pagination-small"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rotate-180 rtl:rotate-0 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
<span class="max-sm:sr-only">Previous</span></a
><a class="k-pagination-item" href="?page=1#pagination-small" aria-label="Page 1">1</a
><a
class="k-pagination-item"
href="?page=2#pagination-small"
aria-label="Page 2"
aria-current="page"
>2</a
><a class="k-pagination-item" href="?page=3#pagination-small" aria-label="Page 3">3</a
><span class="k-pagination-ellipsis"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-ellipsis"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
<span class="sr-only">More pages</span></span
><a class="k-pagination-item" href="?page=10#pagination-small" aria-label="Page 10">10</a
><a
class="k-pagination-item max-sm:w-8 max-sm:p-0"
aria-label="Next page"
rel="next"
href="?page=3#pagination-small"
><span class="max-sm:sr-only">Next</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rtl:rotate-180 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
</a>
</nav><nav class="k-pagination" aria-label="Simple pagination">
<a class="k-pagination-item" href="?page=1#pagination-simple" aria-label="Page 1">1</a
><a
class="k-pagination-item"
href="?page=2#pagination-simple"
aria-label="Page 2"
aria-current="page"
>2</a
><a class="k-pagination-item" href="?page=3#pagination-simple" aria-label="Page 3">3</a
><a class="k-pagination-item" href="?page=4#pagination-simple" aria-label="Page 4">4</a
><a class="k-pagination-item" href="?page=5#pagination-simple" aria-label="Page 5">5</a>
</nav><div class="flex w-full max-w-sm flex-wrap items-center justify-between gap-4">
<p class="text-sm">Page 2 of 10</p>
<nav class="k-pagination" aria-label="Icons pagination">
<a
class="k-pagination-item"
aria-label="Previous page"
rel="prev"
href="?page=1#pagination-icons"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rotate-180 rtl:rotate-0 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg> </a
><a class="k-pagination-item" aria-label="Next page" rel="next" href="?page=3#pagination-icons"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rtl:rotate-180 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
</a>
</nav>
</div>Page 2 of 10
<nav class="k-pagination" aria-label="First pagination">
<span class="k-pagination-item" aria-label="Previous page" aria-disabled="true"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rotate-180 rtl:rotate-0 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
<span class="max-sm:sr-only">Previous</span></span
><a
class="k-pagination-item"
href="?page=1#pagination-first"
aria-label="Page 1"
aria-current="page"
>1</a
><a class="k-pagination-item" href="?page=2#pagination-first" aria-label="Page 2">2</a
><a class="k-pagination-item" href="?page=3#pagination-first" aria-label="Page 3">3</a
><span class="k-pagination-ellipsis"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-ellipsis"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
<span class="sr-only">More pages</span></span
><a class="k-pagination-item" href="?page=10#pagination-first" aria-label="Page 10">10</a
><a
class="k-pagination-item max-sm:w-10 max-sm:p-0"
aria-label="Next page"
rel="next"
href="?page=2#pagination-first"
><span class="max-sm:sr-only">Next</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rtl:rotate-180 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
</a>
</nav><nav class="k-pagination" aria-label="Last pagination">
<a
class="k-pagination-item max-sm:w-10 max-sm:p-0"
aria-label="Previous page"
rel="prev"
href="?page=9#pagination-last"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rotate-180 rtl:rotate-0 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
<span class="max-sm:sr-only">Previous</span></a
><a class="k-pagination-item" href="?page=1#pagination-last" aria-label="Page 1">1</a
><span class="k-pagination-ellipsis"
><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-ellipsis"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
<span class="sr-only">More pages</span></span
><a class="k-pagination-item" href="?page=8#pagination-last" aria-label="Page 8">8</a
><a class="k-pagination-item" href="?page=9#pagination-last" aria-label="Page 9">9</a
><a
class="k-pagination-item"
href="?page=10#pagination-last"
aria-label="Page 10"
aria-current="page"
>10</a
><span class="k-pagination-item" aria-label="Next page" aria-disabled="true"
><span class="max-sm:sr-only">Next</span><!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="rtl:rotate-180 lucide lucide-chevron-right"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m9 18 6-6-6-6" />
</svg>
</span>
</nav><button
type="button"
id="popover-basic-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-basic-panel"
>
Project details
</button>
<div
id="popover-basic-panel"
class="k-popover animate-menu-in"
role="dialog"
aria-modal="false"
aria-labelledby="popover-basic-title"
tabindex="-1"
popover="manual"
hidden
>
<div class="k-popover-header">
<h4 id="popover-basic-title" class="k-popover-title">Project details</h4>
<p class="k-popover-description">
A shared workspace for ideas, guidelines, and work in progress.
</p>
</div>
<a class="k-button k-button-ghost k-button-sm justify-self-start" href="/sections/"
>Explore the layouts</a
>
</div><div class="flex flex-wrap gap-4">
<button
type="button"
id="popover-placement-bottom-start-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-placement-bottom-start-panel"
>
Bottom start</button
><button
type="button"
id="popover-placement-bottom-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-placement-bottom-panel"
>
Bottom</button
><button
type="button"
id="popover-placement-bottom-end-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-placement-bottom-end-panel"
>
Bottom end</button
><button
type="button"
id="popover-placement-top-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-placement-top-panel"
>
Top</button
><button
type="button"
id="popover-placement-left-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-placement-left-panel"
>
Left</button
><button
type="button"
id="popover-placement-right-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-placement-right-panel"
>
Right
</button>
</div>
<div
id="popover-placement-bottom-start-panel"
class="k-popover animate-menu-in w-60"
role="dialog"
aria-modal="false"
aria-labelledby="popover-placement-bottom-start-title"
tabindex="-1"
popover="manual"
hidden
data-k-placement="bottom-start"
>
<div class="k-popover-header">
<h4 id="popover-placement-bottom-start-title" class="k-popover-title">Bottom start</h4>
<p class="k-popover-description">
This panel stays close to its trigger and adjusts to the available space.
</p>
</div>
</div>
<div
id="popover-placement-bottom-panel"
class="k-popover animate-menu-in w-60"
role="dialog"
aria-modal="false"
aria-labelledby="popover-placement-bottom-title"
tabindex="-1"
popover="manual"
hidden
data-k-placement="bottom"
>
<div class="k-popover-header">
<h4 id="popover-placement-bottom-title" class="k-popover-title">Bottom</h4>
<p class="k-popover-description">
This panel stays close to its trigger and adjusts to the available space.
</p>
</div>
</div>
<div
id="popover-placement-bottom-end-panel"
class="k-popover animate-menu-in w-60"
role="dialog"
aria-modal="false"
aria-labelledby="popover-placement-bottom-end-title"
tabindex="-1"
popover="manual"
hidden
data-k-placement="bottom-end"
>
<div class="k-popover-header">
<h4 id="popover-placement-bottom-end-title" class="k-popover-title">Bottom end</h4>
<p class="k-popover-description">
This panel stays close to its trigger and adjusts to the available space.
</p>
</div>
</div>
<div
id="popover-placement-top-panel"
class="k-popover animate-menu-in w-60"
role="dialog"
aria-modal="false"
aria-labelledby="popover-placement-top-title"
tabindex="-1"
popover="manual"
hidden
data-k-placement="top"
>
<div class="k-popover-header">
<h4 id="popover-placement-top-title" class="k-popover-title">Top</h4>
<p class="k-popover-description">
This panel stays close to its trigger and adjusts to the available space.
</p>
</div>
</div>
<div
id="popover-placement-left-panel"
class="k-popover animate-menu-in w-60"
role="dialog"
aria-modal="false"
aria-labelledby="popover-placement-left-title"
tabindex="-1"
popover="manual"
hidden
data-k-placement="left"
>
<div class="k-popover-header">
<h4 id="popover-placement-left-title" class="k-popover-title">Left</h4>
<p class="k-popover-description">
This panel stays close to its trigger and adjusts to the available space.
</p>
</div>
</div>
<div
id="popover-placement-right-panel"
class="k-popover animate-menu-in w-60"
role="dialog"
aria-modal="false"
aria-labelledby="popover-placement-right-title"
tabindex="-1"
popover="manual"
hidden
data-k-placement="right"
>
<div class="k-popover-header">
<h4 id="popover-placement-right-title" class="k-popover-title">Right</h4>
<p class="k-popover-description">
This panel stays close to its trigger and adjusts to the available space.
</p>
</div>
</div><button
type="button"
id="popover-form-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-form-panel"
>
Edit dimensions
</button>
<div
id="popover-form-panel"
class="k-popover animate-menu-in"
role="dialog"
aria-modal="false"
aria-labelledby="popover-form-title"
tabindex="-1"
popover="manual"
hidden
>
<div class="k-popover-header">
<h4 id="popover-form-title" class="k-popover-title">Dimensions</h4>
<p class="k-popover-description">Adjust the size of this layer.</p>
</div>
<div class="grid gap-4">
<div class="grid grid-cols-[5rem_minmax(0,1fr)] items-center gap-3">
<label class="text-sm font-medium" for="popover-form-width">Width</label
><input class="k-input k-input-sm" id="popover-form-width" name="width" value="100%" />
</div>
<div class="grid grid-cols-[5rem_minmax(0,1fr)] items-center gap-3">
<label class="text-sm font-medium" for="popover-form-height">Height</label
><input class="k-input k-input-sm" id="popover-form-height" name="height" value="240px" />
</div>
</div>
<button type="button" class="k-button k-button-sm justify-self-end" data-k-popover-close>
Done
</button>
</div><button
type="button"
id="popover-hover-trigger"
class="k-button k-button-outline border-control"
data-k-popover
aria-haspopup="dialog"
aria-expanded="false"
aria-controls="popover-hover-panel"
>
Quick preview
</button>
<div
id="popover-hover-panel"
class="k-popover animate-menu-in"
role="dialog"
aria-modal="false"
aria-labelledby="popover-hover-title"
tabindex="-1"
popover="manual"
hidden
data-k-mode="hover"
>
<div class="k-popover-header">
<h4 id="popover-hover-title" class="k-popover-title">Typography</h4>
<p class="k-popover-description">
Browse the type scale, supporting styles, and long-form conventions.
</p>
</div>
<a class="k-button k-button-outline k-button-sm justify-self-start" href="/typography/"
>View typography</a
>
</div><progress class="k-progress w-full max-w-sm" value="33" max="100" aria-label="Upload progress">
33%
</progress><div class="grid w-full max-w-sm gap-3">
<label class="flex items-center justify-between gap-4 text-sm font-medium" for="progress-upload"
><span>Upload progress</span><span class="tabular-nums" aria-hidden="true">66%</span></label
>
<progress class="k-progress" id="progress-upload" value="66" max="100">66%</progress>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-3">
<label class="flex justify-between gap-4 text-sm" for="progress-value-0"
><span>Not started</span><span class="tabular-nums" aria-hidden="true">0%</span></label
><progress id="progress-value-0" class="k-progress" value="0" max="100">0%</progress>
</div>
<div class="grid gap-3">
<label class="flex justify-between gap-4 text-sm" for="progress-value-25"
><span>Getting started</span><span class="tabular-nums" aria-hidden="true">25%</span></label
><progress id="progress-value-25" class="k-progress" value="25" max="100">25%</progress>
</div>
<div class="grid gap-3">
<label class="flex justify-between gap-4 text-sm" for="progress-value-75"
><span>Almost there</span><span class="tabular-nums" aria-hidden="true">75%</span></label
><progress id="progress-value-75" class="k-progress" value="75" max="100">75%</progress>
</div>
<div class="grid gap-3">
<label class="flex justify-between gap-4 text-sm" for="progress-value-100"
><span>Complete</span><span class="tabular-nums" aria-hidden="true">100%</span></label
><progress id="progress-value-100" class="k-progress" value="100" max="100">100%</progress>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-3">
<label class="text-sm" for="progress-size-small">Small</label
><progress id="progress-size-small" class="k-progress h-1" value="50" max="100">50%</progress>
</div>
<div class="grid gap-3">
<label class="text-sm" for="progress-size-standard">Standard</label
><progress id="progress-size-standard" class="k-progress" value="50" max="100">50%</progress>
</div>
<div class="grid gap-3">
<label class="text-sm" for="progress-size-large">Large</label
><progress id="progress-size-large" class="k-progress h-3" value="50" max="100">50%</progress>
</div>
</div><div class="grid w-full max-w-sm gap-6">
<div class="grid gap-3">
<label class="text-sm" for="progress-color-processing">Processing</label
><progress
id="progress-color-processing"
class="k-progress text-blue-600 dark:text-blue-400"
value="45"
max="100"
>
45%
</progress>
</div>
<div class="grid gap-3">
<label class="text-sm" for="progress-color-complete">Complete</label
><progress
id="progress-color-complete"
class="k-progress text-green-600 dark:text-green-400"
value="100"
max="100"
>
100%
</progress>
</div>
<div class="grid gap-3">
<label class="text-sm" for="progress-color-paused">Paused</label
><progress
id="progress-color-paused"
class="k-progress text-amber-600 dark:text-amber-400"
value="60"
max="100"
>
60%
</progress>
</div>
</div><div
class="grid w-full max-w-sm gap-3"
aria-busy="true"
aria-describedby="progress-processing-description"
>
<label class="text-sm font-medium" for="progress-processing">Preparing files</label>
<progress id="progress-processing" class="k-progress" max="100">Processing</progress>
<p id="progress-processing-description" class="text-sm">Calculating the remaining work…</p>
</div>Calculating the remaining work…
<fieldset class="k-radio-group w-full max-w-sm">
<legend>Density</legend>
<label class="k-radio-option" for="radio-standard-default"
><input
class="k-radio"
type="radio"
id="radio-standard-default"
name="radio-standard"
value="default"
aria-labelledby="radio-standard-default-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-standard-default-label">Default</span></span
></label
><label class="k-radio-option" for="radio-standard-comfortable"
><input
class="k-radio"
type="radio"
id="radio-standard-comfortable"
name="radio-standard"
value="comfortable"
aria-labelledby="radio-standard-comfortable-label"
checked
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-standard-comfortable-label">Comfortable</span></span
></label
><label class="k-radio-option" for="radio-standard-compact"
><input
class="k-radio"
type="radio"
id="radio-standard-compact"
name="radio-standard"
value="compact"
aria-labelledby="radio-standard-compact-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-standard-compact-label">Compact</span></span
></label
>
</fieldset><fieldset class="k-radio-group w-full max-w-sm">
<legend>Density</legend>
<label class="k-radio-option" for="radio-description-default"
><input
class="k-radio"
type="radio"
id="radio-description-default"
name="radio-description"
value="default"
aria-labelledby="radio-description-default-label"
aria-describedby="radio-description-default-description"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-description-default-label">Default</span
><span class="k-radio-description" id="radio-description-default-description"
>Balanced spacing for everyday interfaces.</span
></span
></label
><label class="k-radio-option" for="radio-description-comfortable"
><input
class="k-radio"
type="radio"
id="radio-description-comfortable"
name="radio-description"
value="comfortable"
aria-labelledby="radio-description-comfortable-label"
checked
aria-describedby="radio-description-comfortable-description"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-description-comfortable-label">Comfortable</span
><span class="k-radio-description" id="radio-description-comfortable-description"
>Extra room between interface elements.</span
></span
></label
><label class="k-radio-option" for="radio-description-compact"
><input
class="k-radio"
type="radio"
id="radio-description-compact"
name="radio-description"
value="compact"
aria-labelledby="radio-description-compact-label"
aria-describedby="radio-description-compact-description"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-description-compact-label">Compact</span
><span class="k-radio-description" id="radio-description-compact-description"
>Tighter spacing for dense views.</span
></span
></label
>
</fieldset><fieldset class="k-radio-group w-full max-w-sm">
<legend>Workspace plan</legend>
<label class="k-radio-option k-radio-card" for="radio-cards-personal"
><input
class="k-radio order-last"
type="radio"
id="radio-cards-personal"
name="radio-cards"
value="personal"
aria-labelledby="radio-cards-personal-label"
checked
aria-describedby="radio-cards-personal-description"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-cards-personal-label">Personal</span
><span class="k-radio-description" id="radio-cards-personal-description"
>A focused workspace for individual projects.</span
></span
></label
><label class="k-radio-option k-radio-card" for="radio-cards-team"
><input
class="k-radio order-last"
type="radio"
id="radio-cards-team"
name="radio-cards"
value="team"
aria-labelledby="radio-cards-team-label"
aria-describedby="radio-cards-team-description"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-cards-team-label">Team</span
><span class="k-radio-description" id="radio-cards-team-description"
>Shared tools for teams working together.</span
></span
></label
><label class="k-radio-option k-radio-card" for="radio-cards-organization"
><input
class="k-radio order-last"
type="radio"
id="radio-cards-organization"
name="radio-cards"
value="organization"
aria-labelledby="radio-cards-organization-label"
aria-describedby="radio-cards-organization-description"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-cards-organization-label">Organization</span
><span class="k-radio-description" id="radio-cards-organization-description"
>More control across multiple teams.</span
></span
></label
>
</fieldset><fieldset class="k-radio-group w-full max-w-sm" aria-describedby="radio-fieldset-description">
<legend>Billing frequency</legend>
<p class="text-sm" id="radio-fieldset-description">Choose how often the subscription renews.</p>
<label class="k-radio-option" for="radio-fieldset-monthly"
><input
class="k-radio"
type="radio"
id="radio-fieldset-monthly"
name="radio-fieldset"
value="monthly"
aria-labelledby="radio-fieldset-monthly-label"
checked
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-fieldset-monthly-label">Monthly</span></span
></label
><label class="k-radio-option" for="radio-fieldset-yearly"
><input
class="k-radio"
type="radio"
id="radio-fieldset-yearly"
name="radio-fieldset"
value="yearly"
aria-labelledby="radio-fieldset-yearly-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-fieldset-yearly-label">Yearly</span></span
></label
><label class="k-radio-option" for="radio-fieldset-lifetime"
><input
class="k-radio"
type="radio"
id="radio-fieldset-lifetime"
name="radio-fieldset"
value="lifetime"
aria-labelledby="radio-fieldset-lifetime-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-fieldset-lifetime-label">Lifetime</span></span
></label
>
</fieldset><fieldset class="k-radio-group w-full max-w-sm">
<legend>Availability</legend>
<label class="k-radio-option" for="radio-disabled-available"
><input
class="k-radio"
type="radio"
id="radio-disabled-available"
name="radio-disabled"
value="available"
aria-labelledby="radio-disabled-available-label"
checked
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-disabled-available-label">Available</span></span
></label
><label class="k-radio-option" for="radio-disabled-later"
><input
class="k-radio"
type="radio"
id="radio-disabled-later"
name="radio-disabled"
value="later"
aria-labelledby="radio-disabled-later-label"
disabled
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-disabled-later-label">Waitlist</span></span
></label
><label class="k-radio-option" for="radio-disabled-other"
><input
class="k-radio"
type="radio"
id="radio-disabled-other"
name="radio-disabled"
value="other"
aria-labelledby="radio-disabled-other-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-disabled-other-label">Alternative</span></span
></label
>
</fieldset>
<fieldset class="k-radio-group mt-8 w-full max-w-sm" disabled>
<legend>Unavailable group</legend>
<label class="k-radio-option" for="radio-disabled-group-saved"
><input
class="k-radio"
type="radio"
id="radio-disabled-group-saved"
name="radio-disabled-group"
value="saved"
aria-labelledby="radio-disabled-group-saved-label"
checked
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-disabled-group-saved-label"
>Previously selected</span
></span
></label
><label class="k-radio-option" for="radio-disabled-group-other"
><input
class="k-radio"
type="radio"
id="radio-disabled-group-other"
name="radio-disabled-group"
value="other"
aria-labelledby="radio-disabled-group-other-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-disabled-group-other-label">Other option</span></span
></label
>
</fieldset><fieldset class="k-radio-group w-full max-w-sm">
<legend>Delivery method</legend>
<label class="k-radio-option" for="radio-invalid-email"
><input
class="k-radio"
type="radio"
id="radio-invalid-email"
name="radio-invalid"
value="email"
aria-labelledby="radio-invalid-email-label"
required
aria-invalid="true"
aria-describedby="radio-invalid-error"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-invalid-email-label">Email</span></span
></label
><label class="k-radio-option" for="radio-invalid-sms"
><input
class="k-radio"
type="radio"
id="radio-invalid-sms"
name="radio-invalid"
value="sms"
aria-labelledby="radio-invalid-sms-label"
required
aria-invalid="true"
aria-describedby="radio-invalid-error"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-invalid-sms-label">SMS</span></span
></label
><label class="k-radio-option" for="radio-invalid-both"
><input
class="k-radio"
type="radio"
id="radio-invalid-both"
name="radio-invalid"
value="both"
aria-labelledby="radio-invalid-both-label"
required
aria-invalid="true"
aria-describedby="radio-invalid-error"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-invalid-both-label">Email and SMS</span></span
></label
>
<p id="radio-invalid-error" class="text-sm text-red-700 dark:text-red-400">
Choose a delivery method to continue.
</p>
</fieldset><fieldset class="k-radio-group w-full max-w-sm">
<legend>Alignment</legend>
<div class="flex flex-wrap gap-x-6 gap-y-3">
<label class="k-radio-option" for="radio-horizontal-left"
><input
class="k-radio"
type="radio"
id="radio-horizontal-left"
name="radio-horizontal"
value="left"
aria-labelledby="radio-horizontal-left-label"
checked
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-horizontal-left-label">Left</span></span
></label
><label class="k-radio-option" for="radio-horizontal-center"
><input
class="k-radio"
type="radio"
id="radio-horizontal-center"
name="radio-horizontal"
value="center"
aria-labelledby="radio-horizontal-center-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-horizontal-center-label">Center</span></span
></label
><label class="k-radio-option" for="radio-horizontal-right"
><input
class="k-radio"
type="radio"
id="radio-horizontal-right"
name="radio-horizontal"
value="right"
aria-labelledby="radio-horizontal-right-label"
/><span class="k-radio-content"
><span class="k-radio-label" id="radio-horizontal-right-label">Right</span></span
></label
>
</div>
</fieldset><div class="k-segmented-control" role="group" aria-label="Standard content view" data-k-segmented>
<button type="button" data-value="overview" aria-pressed="true">Overview</button>
<button type="button" data-value="details" aria-pressed="false" tabindex="-1">Details</button>
<button type="button" data-value="unavailable" aria-pressed="false" tabindex="-1" disabled>
Unavailable
</button>
</div><div
class="k-segmented-control k-segmented-control-sm"
role="group"
aria-label="Small content view"
data-k-segmented
>
<button type="button" data-value="overview" aria-pressed="true">Overview</button>
<button type="button" data-value="details" aria-pressed="false" tabindex="-1">Details</button>
<button type="button" data-value="unavailable" aria-pressed="false" tabindex="-1" disabled>
Unavailable
</button>
</div><div
class="k-segmented-control rounded-full"
role="group"
aria-label="Fully rounded standard content view"
data-k-segmented
>
<button type="button" data-value="overview" aria-pressed="true">Overview</button>
<button type="button" data-value="details" aria-pressed="false" tabindex="-1">Details</button>
<button type="button" data-value="unavailable" aria-pressed="false" tabindex="-1" disabled>
Unavailable
</button>
</div><div
class="k-segmented-control k-segmented-control-sm rounded-full"
role="group"
aria-label="Fully rounded small content view"
data-k-segmented
>
<button type="button" data-value="overview" aria-pressed="true">Overview</button>
<button type="button" data-value="details" aria-pressed="false" tabindex="-1">Details</button>
<button type="button" data-value="unavailable" aria-pressed="false" tabindex="-1" disabled>
Unavailable
</button>
</div><div class="grid gap-6 w-full max-w-lg">
<div
class="k-segmented-control w-fit max-w-full flex-wrap"
role="tablist"
aria-label="Tabs project views"
aria-orientation="horizontal"
data-k-tabs
>
<button
type="button"
id="kern-tabs-0-tab"
role="tab"
aria-controls="kern-tabs-0-panel"
aria-selected="true"
>
Overview
</button>
<button
type="button"
id="kern-tabs-1-tab"
role="tab"
aria-controls="kern-tabs-1-panel"
aria-selected="false"
tabindex="-1"
>
Activity
</button>
<button
type="button"
id="kern-tabs-2-tab"
role="tab"
aria-controls="kern-tabs-2-panel"
aria-selected="false"
tabindex="-1"
>
Settings
</button>
<button type="button" role="tab" aria-selected="false" tabindex="-1" disabled>Archived</button>
</div>
<div
id="kern-tabs-0-panel"
role="tabpanel"
aria-labelledby="kern-tabs-0-tab"
tabindex="0"
class="grid gap-3"
>
<h4 class="text-lg font-medium">Overview</h4>
<p class="text-sm">A clear view of the project, its priorities, and what comes next.</p>
</div>
<div
id="kern-tabs-1-panel"
role="tabpanel"
aria-labelledby="kern-tabs-1-tab"
tabindex="0"
hidden
class="grid gap-3"
>
<h4 class="text-lg font-medium">Activity</h4>
<p class="text-sm">The latest updates and decisions, together in one place.</p>
</div>
<div
id="kern-tabs-2-panel"
role="tabpanel"
aria-labelledby="kern-tabs-2-tab"
tabindex="0"
hidden
class="grid gap-3"
>
<h4 class="text-lg font-medium">Settings</h4>
<p class="text-sm">Manage project preferences, notifications, and access.</p>
</div>
</div>A clear view of the project, its priorities, and what comes next.
The latest updates and decisions, together in one place.
Manage project preferences, notifications, and access.
<div class="grid gap-6 w-full max-w-lg">
<div
class="k-segmented-control k-segmented-control-underline w-fit max-w-full flex-wrap"
role="tablist"
aria-label="Underline project views"
aria-orientation="horizontal"
data-k-tabs
>
<button
type="button"
id="kern-underline-0-tab"
role="tab"
aria-controls="kern-underline-0-panel"
aria-selected="true"
>
Overview
</button>
<button
type="button"
id="kern-underline-1-tab"
role="tab"
aria-controls="kern-underline-1-panel"
aria-selected="false"
tabindex="-1"
>
Activity
</button>
<button
type="button"
id="kern-underline-2-tab"
role="tab"
aria-controls="kern-underline-2-panel"
aria-selected="false"
tabindex="-1"
>
Settings
</button>
<button type="button" role="tab" aria-selected="false" tabindex="-1" disabled>Archived</button>
</div>
<div
id="kern-underline-0-panel"
role="tabpanel"
aria-labelledby="kern-underline-0-tab"
tabindex="0"
class="grid gap-3"
>
<h4 class="text-lg font-medium">Overview</h4>
<p class="text-sm">A clear view of the project, its priorities, and what comes next.</p>
</div>
<div
id="kern-underline-1-panel"
role="tabpanel"
aria-labelledby="kern-underline-1-tab"
tabindex="0"
hidden
class="grid gap-3"
>
<h4 class="text-lg font-medium">Activity</h4>
<p class="text-sm">The latest updates and decisions, together in one place.</p>
</div>
<div
id="kern-underline-2-panel"
role="tabpanel"
aria-labelledby="kern-underline-2-tab"
tabindex="0"
hidden
class="grid gap-3"
>
<h4 class="text-lg font-medium">Settings</h4>
<p class="text-sm">Manage project preferences, notifications, and access.</p>
</div>
</div>A clear view of the project, its priorities, and what comes next.
The latest updates and decisions, together in one place.
Manage project preferences, notifications, and access.
<div class="grid grid-cols-[auto_minmax(0,1fr)] items-start gap-8 sm:gap-12 w-full max-w-lg">
<div
class="k-segmented-control w-32 py-2 text-sm"
role="tablist"
aria-label="Vertical project views"
aria-orientation="vertical"
data-k-tabs
>
<button
type="button"
id="kern-vertical-0-tab"
role="tab"
aria-controls="kern-vertical-0-panel"
aria-selected="true"
>
Overview
</button>
<button
type="button"
id="kern-vertical-1-tab"
role="tab"
aria-controls="kern-vertical-1-panel"
aria-selected="false"
tabindex="-1"
>
Activity
</button>
<button
type="button"
id="kern-vertical-2-tab"
role="tab"
aria-controls="kern-vertical-2-panel"
aria-selected="false"
tabindex="-1"
>
Settings
</button>
<button type="button" role="tab" aria-selected="false" tabindex="-1" disabled>Archived</button>
</div>
<div
id="kern-vertical-0-panel"
role="tabpanel"
aria-labelledby="kern-vertical-0-tab"
tabindex="0"
class="grid gap-3"
>
<h4 class="text-lg font-medium">Overview</h4>
<p class="text-sm">A clear view of the project, its priorities, and what comes next.</p>
</div>
<div
id="kern-vertical-1-panel"
role="tabpanel"
aria-labelledby="kern-vertical-1-tab"
tabindex="0"
hidden
class="grid gap-3"
>
<h4 class="text-lg font-medium">Activity</h4>
<p class="text-sm">The latest updates and decisions, together in one place.</p>
</div>
<div
id="kern-vertical-2-panel"
role="tabpanel"
aria-labelledby="kern-vertical-2-tab"
tabindex="0"
hidden
class="grid gap-3"
>
<h4 class="text-lg font-medium">Settings</h4>
<p class="text-sm">Manage project preferences, notifications, and access.</p>
</div>
</div>A clear view of the project, its priorities, and what comes next.
The latest updates and decisions, together in one place.
Manage project preferences, notifications, and access.
<div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="select-standard">Department</label>
<div class="k-select-wrapper">
<select class="k-select" id="select-standard" name="select-standard">
<option value="" selected>Choose an option</option>
<option value="design">Design</option>
<option value="engineering">Engineering</option>
<option value="operations">Operations</option>
</select>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="select-small">Department</label>
<div class="k-select-wrapper">
<select class="k-select k-select-sm" id="select-small" name="select-small">
<option value="" selected>Choose an option</option>
<option value="design">Design</option>
<option value="engineering">Engineering</option>
<option value="operations">Operations</option>
</select>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="select-description">Department</label>
<div class="k-select-wrapper">
<select
class="k-select"
id="select-description"
name="select-description"
aria-describedby="select-description-description"
>
<option value="" selected>Choose an option</option>
<option value="design">Design</option>
<option value="engineering">Engineering</option>
<option value="operations">Operations</option>
</select>
</div>
<p id="select-description-description" class="text-sm">
Choose the team responsible for this project.
</p>
</div>Choose the team responsible for this project.
<div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="select-grouped">Role</label>
<div class="k-select-wrapper">
<select class="k-select" id="select-grouped" name="select-grouped">
<option value="" selected>Choose a role</option>
<optgroup label="Product">
<option value="designer">Designer</option>
<option value="researcher">Researcher</option>
</optgroup>
<optgroup label="Engineering">
<option value="frontend">Frontend engineer</option>
<option value="backend">Backend engineer</option>
<option value="platform" disabled>Platform engineer — unavailable</option>
</optgroup>
</select>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="select-disabled">Department</label>
<div class="k-select-wrapper">
<select class="k-select" id="select-disabled" name="select-disabled" disabled>
<option value="" selected>Choose an option</option>
<option value="design">Design</option>
<option value="engineering">Engineering</option>
<option value="operations">Operations</option>
</select>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="select-invalid">Department (required)</label>
<div class="k-select-wrapper">
<select
class="k-select"
id="select-invalid"
name="select-invalid"
required
aria-invalid="true"
aria-describedby="select-invalid-description"
>
<option value="" selected>Choose an option</option>
<option value="design">Design</option>
<option value="engineering">Engineering</option>
<option value="operations">Operations</option>
</select>
</div>
<p id="select-invalid-description" class="text-sm text-red-700 dark:text-red-400">
Choose a department to continue.
</p>
</div>Choose a department to continue.
<div class="flex flex-wrap items-center gap-3">
<label class="text-sm font-medium" for="select-horizontal">Rows per page</label>
<div class="k-select-wrapper w-24">
<select class="k-select" id="select-horizontal" name="select-horizontal">
<option value="10">10</option>
<option value="25" selected>25</option>
<option value="50">50</option>
<option value="100">100</option>
</select>
</div>
</div><div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="select-multiple">Teams</label>
<div class="k-select-wrapper">
<select
class="k-select"
id="select-multiple"
name="select-multiple"
multiple
size="4"
aria-describedby="select-multiple-description"
>
<option value="design" selected>Design</option>
<option value="engineering">Engineering</option>
<option value="operations">Operations</option>
<option value="marketing">Marketing</option>
</select>
</div>
<p id="select-multiple-description" class="text-sm">
Select one or more teams using the platform’s multiple-selection controls.
</p>
</div>Select one or more teams using the platform’s multiple-selection controls.
<div class="grid w-full max-w-sm gap-4 text-sm">
<div class="grid gap-2">
<p class="font-medium">Kern</p>
<p>A considered starting point for brands and interfaces.</p>
</div>
<hr class="k-separator" />
<p>Shared typography, colors, and components bring consistency to each page.</p>
</div>Kern
A considered starting point for brands and interfaces.
Shared typography, colors, and components bring consistency to each page.
<nav class="flex min-h-5 flex-wrap items-center gap-4 text-sm" aria-label="Resource links">
<a href="/" class="hover:underline underline-offset-2 hover:decoration-2">Overview</a>
<span class="k-separator k-separator-vertical" aria-hidden="true"></span>
<a href="/typography/" class="hover:underline underline-offset-2 hover:decoration-2"
>Typography</a
>
<span class="k-separator k-separator-vertical" aria-hidden="true"></span>
<a href="/sections/" class="hover:underline underline-offset-2 hover:decoration-2">Sections</a>
</nav><div class="grid w-full max-w-sm gap-3 text-sm">
<dl class="flex justify-between gap-4">
<dt>Plan</dt>
<dd>Team</dd>
</dl>
<div class="k-separator" aria-hidden="true"></div>
<dl class="flex justify-between gap-4">
<dt>Members</dt>
<dd>12</dd>
</dl>
<div class="k-separator" aria-hidden="true"></div>
<dl class="flex justify-between gap-4">
<dt>Billing</dt>
<dd>Monthly</dd>
</dl>
</div><div class="grid w-full max-w-sm gap-6 text-sm">
<span class="k-shimmer">Thinking…</span><span class="k-shimmer">Preparing the next response</span
><span class="k-shimmer font-medium">Reviewing the project</span>
</div><div class="grid w-full max-w-sm gap-6 text-sm">
<p role="status" class="k-shimmer">Processing the latest updates…</p>
</div>Processing the latest updates…
<div class="grid w-full max-w-sm gap-6 text-sm">
<span class="k-shimmer k-shimmer-once">The response is ready.</span>
</div><div class="grid w-full max-w-sm gap-6 text-sm">
<span class="k-shimmer k-shimmer-none">The effect is switched off.</span
><span class="k-shimmer md:k-shimmer-none">Animated on mobile, static on larger screens.</span>
</div><div class="w-full max-w-sm" aria-busy="true">
<span class="sr-only">Loading article…</span>
<div aria-hidden="true">
<div class="grid gap-3">
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-3/4"></div>
</div>
</div>
</div><div class="w-full max-w-sm" aria-busy="true">
<span class="sr-only">Loading profile…</span>
<div aria-hidden="true">
<div class="flex items-center gap-4">
<div class="k-skeleton size-10 shrink-0 rounded-full"></div>
<div class="grid min-w-0 flex-1 gap-2">
<div class="k-skeleton h-3 w-40 max-w-full"></div>
<div class="k-skeleton h-3 w-28 max-w-full"></div>
</div>
</div>
</div>
</div><div class="w-full max-w-sm" aria-busy="true">
<span class="sr-only">Loading form…</span>
<div aria-hidden="true">
<div class="grid gap-6">
<div class="grid gap-3">
<div class="k-skeleton h-2 w-20"></div>
<div class="k-skeleton h-8 w-full"></div>
</div>
<div class="grid gap-3">
<div class="k-skeleton h-2 w-24"></div>
<div class="k-skeleton h-8 w-full"></div>
</div>
<div class="k-skeleton h-8 w-24"></div>
</div>
</div>
</div><div class="w-full max-w-sm" aria-busy="true">
<span class="sr-only">Loading table…</span>
<div aria-hidden="true">
<div class="grid gap-4">
<div class="grid grid-cols-[minmax(0,1fr)_5rem_4rem] gap-4">
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
</div>
<div class="grid grid-cols-[minmax(0,1fr)_5rem_4rem] gap-4">
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
</div>
<div class="grid grid-cols-[minmax(0,1fr)_5rem_4rem] gap-4">
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
</div>
<div class="grid grid-cols-[minmax(0,1fr)_5rem_4rem] gap-4">
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
</div>
<div class="grid grid-cols-[minmax(0,1fr)_5rem_4rem] gap-4">
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
<div class="k-skeleton h-3 w-full"></div>
</div>
</div>
</div>
</div><div class="grid w-full max-w-sm gap-3">
<div class="flex items-center justify-between gap-4">
<label for="slider-volume-control" class="text-sm font-medium">Volume</label
><span class="text-sm tabular-nums" aria-hidden="true"
><span data-k-slider-value="slider-volume-control">75</span>%</span
>
</div>
<input
type="range"
class="k-slider"
id="slider-volume-control"
name="slider-volume-control"
min="0"
max="100"
step="1"
value="75"
style="--k-slider-value: 75%"
/>
</div><div class="grid w-full max-w-sm gap-3">
<div class="flex items-center justify-between gap-4">
<label for="slider-temperature-control" class="text-sm font-medium">Temperature</label
><span class="text-sm tabular-nums" aria-hidden="true"
><span data-k-slider-value="slider-temperature-control">0.3</span></span
>
</div>
<input
type="range"
class="k-slider"
id="slider-temperature-control"
name="slider-temperature-control"
min="0"
max="1"
step="0.1"
value="0.3"
style="--k-slider-value: 30%"
/>
</div><div class="grid w-full max-w-sm gap-3">
<div class="flex items-center justify-between gap-4">
<label for="slider-zoom-control" class="text-sm font-medium">Zoom</label
><span class="text-sm tabular-nums" aria-hidden="true"
><span data-k-slider-value="slider-zoom-control">50</span>%</span
>
</div>
<input
type="range"
class="k-slider"
id="slider-zoom-control"
name="slider-zoom-control"
min="0"
max="100"
step="25"
value="50"
style="--k-slider-value: 50%"
aria-describedby="slider-zoom-control-description"
/>
<p class="text-sm" id="slider-zoom-control-description">Adjust in increments of 25%.</p>
</div>Adjust in increments of 25%.
<fieldset class="grid w-full max-w-sm gap-3">
<legend class="mb-4 text-sm font-medium">Price range</legend>
<div class="flex flex-wrap justify-between gap-3 text-sm" aria-hidden="true">
<span
>Minimum:
<span class="tabular-nums" data-k-slider-value="slider-range-1-control">200</span></span
><span
>Maximum:
<span class="tabular-nums" data-k-slider-value="slider-range-2-control">800</span></span
>
</div>
<div class="k-slider-range" style="--k-slider-min: 20%; --k-slider-max: 80%">
<input
type="range"
class="k-slider"
id="slider-range-1-control"
name="slider-range-1-control"
min="0"
max="1000"
step="10"
value="200"
style="--k-slider-value: 20%"
aria-label="Minimum price range"
/><input
type="range"
class="k-slider"
id="slider-range-2-control"
name="slider-range-2-control"
min="0"
max="1000"
step="10"
value="800"
style="--k-slider-value: 80%"
aria-label="Maximum price range"
/>
</div>
</fieldset><fieldset class="grid w-full max-w-sm gap-3">
<legend class="mb-4 text-sm font-medium">Breakpoints</legend>
<div class="flex flex-wrap justify-between gap-3 text-sm" aria-hidden="true">
<span
>First value:
<span class="tabular-nums" data-k-slider-value="slider-multiple-1-control">10</span></span
><span
>Second value:
<span class="tabular-nums" data-k-slider-value="slider-multiple-2-control">30</span></span
><span
>Third value:
<span class="tabular-nums" data-k-slider-value="slider-multiple-3-control">70</span></span
>
</div>
<div class="k-slider-range" style="--k-slider-min: 10%; --k-slider-max: 70%">
<input
type="range"
class="k-slider"
id="slider-multiple-1-control"
name="slider-multiple-1-control"
min="0"
max="100"
step="10"
value="10"
style="--k-slider-value: 10%"
aria-label="First value breakpoints"
/><input
type="range"
class="k-slider"
id="slider-multiple-2-control"
name="slider-multiple-2-control"
min="0"
max="100"
step="10"
value="30"
style="--k-slider-value: 30%"
aria-label="Second value breakpoints"
/><input
type="range"
class="k-slider"
id="slider-multiple-3-control"
name="slider-multiple-3-control"
min="0"
max="100"
step="10"
value="70"
style="--k-slider-value: 70%"
aria-label="Third value breakpoints"
/>
</div>
</fieldset><fieldset class="grid w-full max-w-sm gap-3">
<legend class="mb-4 text-sm font-medium">Budget</legend>
<div class="flex flex-wrap justify-between gap-3 text-sm" aria-hidden="true">
<span
>Minimum:
<span class="tabular-nums" data-k-slider-value="slider-field-1-control">250</span></span
><span
>Maximum:
<span class="tabular-nums" data-k-slider-value="slider-field-2-control">750</span></span
>
</div>
<div class="k-slider-range" style="--k-slider-min: 25%; --k-slider-max: 75%">
<input
type="range"
class="k-slider"
id="slider-field-1-control"
name="slider-field-1-control"
min="0"
max="1000"
step="50"
value="250"
style="--k-slider-value: 25%"
aria-label="Minimum budget"
/><input
type="range"
class="k-slider"
id="slider-field-2-control"
name="slider-field-2-control"
min="0"
max="1000"
step="50"
value="750"
style="--k-slider-value: 75%"
aria-label="Maximum budget"
/>
</div>
<p class="text-sm">Set the minimum and maximum budget for this project.</p>
</fieldset><div class="flex flex-wrap items-start gap-12">
<div class="grid justify-items-center gap-4">
<label for="slider-vertical-volume-control" class="text-sm font-medium">Volume</label
><input
type="range"
class="k-slider k-slider-vertical"
id="slider-vertical-volume-control"
name="slider-vertical-volume-control"
min="0"
max="100"
step="1"
value="50"
style="--k-slider-value: 50%"
aria-orientation="vertical"
/><span class="text-sm tabular-nums" aria-hidden="true"
><span data-k-slider-value="slider-vertical-volume-control">50</span>%</span
>
</div>
<div class="grid justify-items-center gap-4">
<label for="slider-vertical-brightness-control" class="text-sm font-medium">Brightness</label
><input
type="range"
class="k-slider k-slider-vertical"
id="slider-vertical-brightness-control"
name="slider-vertical-brightness-control"
min="0"
max="100"
step="1"
value="25"
style="--k-slider-value: 25%"
aria-orientation="vertical"
/><span class="text-sm tabular-nums" aria-hidden="true"
><span data-k-slider-value="slider-vertical-brightness-control">25</span>%</span
>
</div>
</div><div class="grid w-full max-w-sm gap-3">
<div class="flex items-center justify-between gap-4">
<label for="slider-disabled-control" class="text-sm font-medium">Volume</label
><span class="text-sm tabular-nums" aria-hidden="true"
><span data-k-slider-value="slider-disabled-control">50</span>%</span
>
</div>
<input
type="range"
class="k-slider"
id="slider-disabled-control"
name="slider-disabled-control"
min="0"
max="100"
step="1"
value="50"
style="--k-slider-value: 50%"
disabled
/>
</div><div class="flex flex-wrap items-center gap-8">
<label class="k-switch"
><input type="checkbox" role="switch" /><span class="k-switch-track" aria-hidden="true"></span
><span>Off</span></label
><label class="k-switch"
><input type="checkbox" role="switch" checked /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>On</span></label
><label class="k-switch"
><input type="checkbox" role="switch" disabled /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>Disabled off</span></label
><label class="k-switch"
><input type="checkbox" role="switch" checked disabled /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>Disabled on</span></label
>
</div><div class="flex flex-wrap items-center gap-8">
<label class="k-switch k-switch-sm"
><input type="checkbox" role="switch" /><span class="k-switch-track" aria-hidden="true"></span
><span>Off</span></label
><label class="k-switch k-switch-sm"
><input type="checkbox" role="switch" checked /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>On</span></label
><label class="k-switch k-switch-sm"
><input type="checkbox" role="switch" disabled /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>Disabled off</span></label
><label class="k-switch k-switch-sm"
><input type="checkbox" role="switch" checked disabled /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>Disabled on</span></label
>
</div><div class="flex flex-wrap items-center gap-8">
<label class="k-switch k-switch-lg"
><input type="checkbox" role="switch" /><span class="k-switch-track" aria-hidden="true"></span
><span>Off</span></label
><label class="k-switch k-switch-lg"
><input type="checkbox" role="switch" checked /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>On</span></label
><label class="k-switch k-switch-lg"
><input type="checkbox" role="switch" disabled /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>Disabled off</span></label
><label class="k-switch k-switch-lg"
><input type="checkbox" role="switch" checked disabled /><span
class="k-switch-track"
aria-hidden="true"
></span
><span>Disabled on</span></label
>
</div><div class="grid w-full max-w-sm gap-4">
<label class="k-switch w-full" for="switch-sync-control"
><input
type="checkbox"
role="switch"
id="switch-sync-control"
name="switch-sync-control"
value="enabled"
aria-labelledby="switch-sync-control-label"
aria-describedby="switch-sync-control-description"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-sync-control-label">Sync across devices</span
><span class="k-switch-description" id="switch-sync-control-description"
>Keep preferences consistent across signed-in devices.</span
></span
></label
><label class="k-switch w-full k-switch-sm" for="switch-focus-control"
><input
type="checkbox"
role="switch"
id="switch-focus-control"
name="switch-focus-control"
value="enabled"
aria-labelledby="switch-focus-control-label"
checked
aria-describedby="switch-focus-control-description"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-focus-control-label">Focus mode</span
><span class="k-switch-description" id="switch-focus-control-description"
>Pause nonessential notifications while working.</span
></span
></label
>
</div><div class="grid w-full max-w-sm gap-4">
<label class="k-switch w-full k-switch-card" for="switch-card-sync-control"
><input
type="checkbox"
role="switch"
id="switch-card-sync-control"
name="switch-card-sync-control"
value="enabled"
aria-labelledby="switch-card-sync-control-label"
aria-describedby="switch-card-sync-control-description"
/><span class="k-switch-track" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-card-sync-control-label">Sync across devices</span
><span class="k-switch-description" id="switch-card-sync-control-description"
>Keep preferences consistent across signed-in devices.</span
></span
></label
><label class="k-switch w-full k-switch-card" for="switch-card-notifications-control"
><input
type="checkbox"
role="switch"
id="switch-card-notifications-control"
name="switch-card-notifications-control"
value="enabled"
aria-labelledby="switch-card-notifications-control-label"
checked
aria-describedby="switch-card-notifications-control-description"
/><span class="k-switch-track" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-card-notifications-control-label"
>Enable notifications</span
><span class="k-switch-description" id="switch-card-notifications-control-description"
>Receive updates when there is new activity.</span
></span
></label
>
</div><fieldset class="k-switch-group w-full max-w-sm">
<legend>Notifications</legend>
<p class="text-sm">Choose which updates to receive.</p>
<label class="k-switch w-full" for="switch-group-project-control"
><input
type="checkbox"
role="switch"
id="switch-group-project-control"
name="switch-group-project-control"
value="enabled"
aria-labelledby="switch-group-project-control-label"
checked
aria-describedby="switch-group-project-control-description"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-group-project-control-label">Project activity</span
><span class="k-switch-description" id="switch-group-project-control-description"
>Receive updates when a project changes.</span
></span
></label
><label class="k-switch w-full" for="switch-group-mentions-control"
><input
type="checkbox"
role="switch"
id="switch-group-mentions-control"
name="switch-group-mentions-control"
value="enabled"
aria-labelledby="switch-group-mentions-control-label"
checked
aria-describedby="switch-group-mentions-control-description"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-group-mentions-control-label">Mentions</span
><span class="k-switch-description" id="switch-group-mentions-control-description"
>Receive an alert when someone mentions this account.</span
></span
></label
><label class="k-switch w-full" for="switch-group-news-control"
><input
type="checkbox"
role="switch"
id="switch-group-news-control"
name="switch-group-news-control"
value="enabled"
aria-labelledby="switch-group-news-control-label"
aria-describedby="switch-group-news-control-description"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-group-news-control-label">Product news</span
><span class="k-switch-description" id="switch-group-news-control-description"
>Receive occasional announcements and release notes.</span
></span
></label
>
</fieldset><div class="grid w-full max-w-sm gap-4">
<label class="k-switch w-full" for="switch-disabled-sync-control"
><input
type="checkbox"
role="switch"
id="switch-disabled-sync-control"
name="switch-disabled-sync-control"
value="enabled"
aria-labelledby="switch-disabled-sync-control-label"
checked
disabled
aria-describedby="switch-disabled-sync-control-description"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-disabled-sync-control-label"
>Sync across devices</span
><span class="k-switch-description" id="switch-disabled-sync-control-description"
>This setting is managed by the workspace.</span
></span
></label
><label class="k-switch w-full" for="switch-disabled-news-control"
><input
type="checkbox"
role="switch"
id="switch-disabled-news-control"
name="switch-disabled-news-control"
value="enabled"
aria-labelledby="switch-disabled-news-control-label"
disabled
aria-describedby="switch-disabled-news-control-description"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-disabled-news-control-label">Product news</span
><span class="k-switch-description" id="switch-disabled-news-control-description"
>This setting is currently unavailable.</span
></span
></label
>
</div><div class="grid w-full max-w-sm gap-3">
<label class="k-switch w-full" for="switch-invalid-control"
><input
type="checkbox"
role="switch"
id="switch-invalid-control"
name="switch-invalid-control"
value="enabled"
aria-labelledby="switch-invalid-control-label"
aria-invalid="true"
aria-describedby="switch-invalid-control-description switch-invalid-control-error"
/><span class="k-switch-track order-last" aria-hidden="true"></span
><span class="k-switch-content"
><span class="k-switch-label" id="switch-invalid-control-label">Enable notifications</span
><span class="k-switch-description" id="switch-invalid-control-description"
>Choose whether project updates can send notifications.</span
></span
></label
>
<p class="text-sm text-red-700 dark:text-red-400" id="switch-invalid-control-error">
The setting could not be saved. Try again.
</p>
</div>The setting could not be saved. Try again.
<div
class="k-table-container w-full max-w-3xl"
role="region"
aria-labelledby="table-standard-caption"
tabindex="0"
>
<table class="k-table min-w-lg">
<caption id="table-standard-caption">
Recent invoices
</caption>
<thead class="k-table-header">
<tr class="k-table-row">
<th scope="col" class="k-table-head">Invoice</th>
<th scope="col" class="k-table-head">Status</th>
<th scope="col" class="k-table-head">Method</th>
<th scope="col" class="k-table-head text-end">Amount</th>
</tr>
</thead>
<tbody class="k-table-body">
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-101</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$125.00</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-102</th>
<td class="k-table-cell">Pending</td>
<td class="k-table-cell">Bank transfer</td>
<td class="k-table-cell text-end tabular-nums">$240.00</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-103</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$360.00</td>
</tr>
</tbody>
</table>
</div>| Invoice | Status | Method | Amount |
|---|---|---|---|
| K-101 | Paid | Card | $125.00 |
| K-102 | Pending | Bank transfer | $240.00 |
| K-103 | Paid | Card | $360.00 |
<div
class="k-table-container w-full max-w-3xl"
role="region"
aria-labelledby="table-small-caption"
tabindex="0"
>
<table class="k-table min-w-lg k-table-sm">
<caption id="table-small-caption">
Recent invoices
</caption>
<thead class="k-table-header">
<tr class="k-table-row">
<th scope="col" class="k-table-head">Invoice</th>
<th scope="col" class="k-table-head">Status</th>
<th scope="col" class="k-table-head">Method</th>
<th scope="col" class="k-table-head text-end">Amount</th>
</tr>
</thead>
<tbody class="k-table-body">
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-101</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$125.00</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-102</th>
<td class="k-table-cell">Pending</td>
<td class="k-table-cell">Bank transfer</td>
<td class="k-table-cell text-end tabular-nums">$240.00</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-103</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$360.00</td>
</tr>
</tbody>
</table>
</div>| Invoice | Status | Method | Amount |
|---|---|---|---|
| K-101 | Paid | Card | $125.00 |
| K-102 | Pending | Bank transfer | $240.00 |
| K-103 | Paid | Card | $360.00 |
<div
class="k-table-container w-full max-w-3xl"
role="region"
aria-labelledby="table-large-caption"
tabindex="0"
>
<table class="k-table min-w-lg k-table-lg">
<caption id="table-large-caption">
Recent invoices
</caption>
<thead class="k-table-header">
<tr class="k-table-row">
<th scope="col" class="k-table-head">Invoice</th>
<th scope="col" class="k-table-head">Status</th>
<th scope="col" class="k-table-head">Method</th>
<th scope="col" class="k-table-head text-end">Amount</th>
</tr>
</thead>
<tbody class="k-table-body">
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-101</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$125.00</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-102</th>
<td class="k-table-cell">Pending</td>
<td class="k-table-cell">Bank transfer</td>
<td class="k-table-cell text-end tabular-nums">$240.00</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">K-103</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$360.00</td>
</tr>
</tbody>
</table>
</div>| Invoice | Status | Method | Amount |
|---|---|---|---|
| K-101 | Paid | Card | $125.00 |
| K-102 | Pending | Bank transfer | $240.00 |
| K-103 | Paid | Card | $360.00 |
<div
class="k-table-container w-full max-w-3xl"
role="region"
aria-labelledby="table-striped-caption"
tabindex="0"
>
<table class="k-table min-w-lg">
<caption id="table-striped-caption">
Recent invoices
</caption>
<thead class="k-table-header">
<tr class="k-table-row">
<th scope="col" class="k-table-head">Invoice</th>
<th scope="col" class="k-table-head">Status</th>
<th scope="col" class="k-table-head">Method</th>
<th scope="col" class="k-table-head text-end">Amount</th>
</tr>
</thead>
<tbody class="k-table-body">
<tr class="k-table-row odd:bg-surface/50 hover:bg-surface">
<th scope="row" class="k-table-cell font-medium">K-101</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$125.00</td>
</tr>
<tr class="k-table-row odd:bg-surface/50 hover:bg-surface">
<th scope="row" class="k-table-cell font-medium">K-102</th>
<td class="k-table-cell">Pending</td>
<td class="k-table-cell">Bank transfer</td>
<td class="k-table-cell text-end tabular-nums">$240.00</td>
</tr>
<tr class="k-table-row odd:bg-surface/50 hover:bg-surface">
<th scope="row" class="k-table-cell font-medium">K-103</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell">Card</td>
<td class="k-table-cell text-end tabular-nums">$360.00</td>
</tr>
</tbody>
</table>
</div>| Invoice | Status | Method | Amount |
|---|---|---|---|
| K-101 | Paid | Card | $125.00 |
| K-102 | Pending | Bank transfer | $240.00 |
| K-103 | Paid | Card | $360.00 |
<div
class="k-table-container w-full max-w-3xl"
role="region"
aria-labelledby="table-selection-caption"
tabindex="0"
data-k-checkbox-group
>
<table class="k-table min-w-lg">
<caption id="table-selection-caption">
Select invoices for a bulk action
</caption>
<thead class="k-table-header">
<tr class="k-table-row">
<th scope="col" class="k-table-head w-12">
<label class="k-checkbox"
><input type="checkbox" aria-label="Select all invoices" data-k-checkbox-all /><span
class="k-checkbox-control"
aria-hidden="true"
></span
></label>
</th>
<th scope="col" class="k-table-head">Invoice</th>
<th scope="col" class="k-table-head">Status</th>
<th scope="col" class="k-table-head text-end">Amount</th>
</tr>
</thead>
<tbody class="k-table-body">
<tr class="k-table-row">
<td class="k-table-cell">
<label class="k-checkbox"
><input
type="checkbox"
aria-label="Select invoice K-101"
checked
name="invoices"
value="K-101"
data-k-checkbox-item /><span class="k-checkbox-control" aria-hidden="true"></span
></label>
</td>
<th scope="row" class="k-table-cell font-medium">K-101</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell text-end tabular-nums">$125.00</td>
</tr>
<tr class="k-table-row">
<td class="k-table-cell">
<label class="k-checkbox"
><input
type="checkbox"
aria-label="Select invoice K-102"
name="invoices"
value="K-102"
data-k-checkbox-item /><span class="k-checkbox-control" aria-hidden="true"></span
></label>
</td>
<th scope="row" class="k-table-cell font-medium">K-102</th>
<td class="k-table-cell">Pending</td>
<td class="k-table-cell text-end tabular-nums">$240.00</td>
</tr>
<tr class="k-table-row">
<td class="k-table-cell">
<label class="k-checkbox"
><input
type="checkbox"
aria-label="Select invoice K-103"
name="invoices"
value="K-103"
data-k-checkbox-item /><span class="k-checkbox-control" aria-hidden="true"></span
></label>
</td>
<th scope="row" class="k-table-cell font-medium">K-103</th>
<td class="k-table-cell">Paid</td>
<td class="k-table-cell text-end tabular-nums">$360.00</td>
</tr>
</tbody>
</table>
</div>| Invoice | Status | Amount | |
|---|---|---|---|
| K-101 | Paid | $125.00 | |
| K-102 | Pending | $240.00 | |
| K-103 | Paid | $360.00 |
<div
class="k-table-container w-full max-w-3xl"
role="region"
aria-labelledby="table-actions-caption"
tabindex="0"
>
<table class="k-table min-w-lg">
<caption id="table-actions-caption">
Workspace members
</caption>
<thead class="k-table-header">
<tr class="k-table-row">
<th scope="col" class="k-table-head">Member</th>
<th scope="col" class="k-table-head">Role</th>
<th scope="col" class="k-table-head text-end">Actions</th>
</tr>
</thead>
<tbody class="k-table-body">
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">Alex Morgan</th>
<td class="k-table-cell">Owner</td>
<td class="k-table-cell text-end">
<button
type="button"
class="k-button k-button-ghost k-button-sm k-button-icon"
id="table-member-1-trigger"
aria-label="Actions for Alex Morgan"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="table-member-1-menu"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-ellipsis"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
</button>
</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">Sam Rivera</th>
<td class="k-table-cell">Editor</td>
<td class="k-table-cell text-end">
<button
type="button"
class="k-button k-button-ghost k-button-sm k-button-icon"
id="table-member-2-trigger"
aria-label="Actions for Sam Rivera"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="table-member-2-menu"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-ellipsis"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
</button>
</td>
</tr>
<tr class="k-table-row">
<th scope="row" class="k-table-cell font-medium">Jamie Chen</th>
<td class="k-table-cell">Viewer</td>
<td class="k-table-cell text-end">
<button
type="button"
class="k-button k-button-ghost k-button-sm k-button-icon"
id="table-member-3-trigger"
aria-label="Actions for Jamie Chen"
data-k-dropdown
aria-haspopup="menu"
aria-expanded="false"
aria-controls="table-member-3-menu"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-ellipsis"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<circle cx="12" cy="12" r="1" />
<circle cx="19" cy="12" r="1" />
<circle cx="5" cy="12" r="1" />
</svg>
</button>
</td>
</tr>
</tbody>
</table>
</div>
<div
id="table-member-1-menu"
class="k-dropdown animate-menu-in"
role="menu"
aria-labelledby="table-member-1-trigger"
tabindex="-1"
data-k-placement="bottom-end"
popover="manual"
hidden
>
<a class="k-dropdown-item" role="menuitem" tabindex="-1" href="/typography/">View profile</a
><button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1" data-value="edit">
Edit role
</button>
<div class="k-separator my-1" role="separator" aria-orientation="horizontal"></div>
<button
type="button"
class="k-dropdown-item text-red-700 dark:text-red-400"
role="menuitem"
tabindex="-1"
data-value="remove"
>
Remove member
</button>
</div>
<div
id="table-member-2-menu"
class="k-dropdown animate-menu-in"
role="menu"
aria-labelledby="table-member-2-trigger"
tabindex="-1"
data-k-placement="bottom-end"
popover="manual"
hidden
>
<a class="k-dropdown-item" role="menuitem" tabindex="-1" href="/typography/">View profile</a
><button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1" data-value="edit">
Edit role
</button>
<div class="k-separator my-1" role="separator" aria-orientation="horizontal"></div>
<button
type="button"
class="k-dropdown-item text-red-700 dark:text-red-400"
role="menuitem"
tabindex="-1"
data-value="remove"
>
Remove member
</button>
</div>
<div
id="table-member-3-menu"
class="k-dropdown animate-menu-in"
role="menu"
aria-labelledby="table-member-3-trigger"
tabindex="-1"
data-k-placement="bottom-end"
popover="manual"
hidden
>
<a class="k-dropdown-item" role="menuitem" tabindex="-1" href="/typography/">View profile</a
><button type="button" class="k-dropdown-item" role="menuitem" tabindex="-1" data-value="edit">
Edit role
</button>
<div class="k-separator my-1" role="separator" aria-orientation="horizontal"></div>
<button
type="button"
class="k-dropdown-item text-red-700 dark:text-red-400"
role="menuitem"
tabindex="-1"
data-value="remove"
>
Remove member
</button>
</div>| Member | Role | Actions |
|---|---|---|
| Alex Morgan | Owner | |
| Sam Rivera | Editor | |
| Jamie Chen | Viewer |
<textarea
class="k-textarea w-full max-w-sm"
name="message"
rows="2"
aria-label="Message"
placeholder="Write a message…"
></textarea><div class="grid w-full max-w-sm gap-2">
<div class="grid gap-1">
<label class="text-sm font-medium" for="kern-textarea-message">Message</label>
<p class="text-sm" id="kern-textarea-message-description">
Share a question, an idea, or a little feedback.
</p>
</div>
<textarea
class="k-textarea"
id="kern-textarea-message"
name="message"
rows="2"
aria-describedby="kern-textarea-message-description"
placeholder="Write a message…"
></textarea>
</div>Share a question, an idea, or a little feedback.
<div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="kern-textarea-disabled">Message</label>
<textarea
class="k-textarea"
id="kern-textarea-disabled"
name="message"
rows="2"
placeholder="Messaging is unavailable."
disabled
></textarea>
</div><div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="kern-textarea-readonly">Project summary</label>
<textarea class="k-textarea" id="kern-textarea-readonly" name="summary" rows="2" readonly>
A shared space for ideas, decisions, and the work that comes next.</textarea>
</div><div class="grid w-full max-w-sm gap-2">
<label class="text-sm font-medium" for="kern-textarea-invalid">Message</label>
<textarea
class="k-textarea"
id="kern-textarea-invalid"
name="message"
rows="2"
placeholder="Write a message…"
required
aria-invalid="true"
aria-describedby="kern-textarea-error"
></textarea>
<p class="text-sm text-red-700 dark:text-red-400" id="kern-textarea-error">
Enter a message before continuing.
</p>
</div>Enter a message before continuing.
<section>
<div class="k-container space-y-8">
<div class="flex flex-wrap gap-4">
<button type="button" class="k-button" onclick="Kern.toast('Changes saved.')">
Show toast
</button>
<button
type="button"
class="k-button"
onclick="Kern.toast('Settings updated.', { duration: 5000 })"
>
Show for five seconds
</button>
<button
type="button"
class="k-button"
data-copy="A considered starting point."
data-copy-label="Sample text copied."
>
Copy sample text
</button>
</div>
</div>
</section><button
type="button"
class="k-button k-button-outline"
data-k-tooltip="kern-tooltip-standard-hint"
aria-describedby="kern-tooltip-standard-hint"
>
Hover or focus
</button>
<div
id="kern-tooltip-standard-hint"
class="k-tooltip animate-tooltip"
role="tooltip"
popover="manual"
hidden
data-k-placement="top"
>
A short hint, right where it is needed.
</div><div class="flex flex-wrap items-center gap-4">
<button
type="button"
class="k-button k-button-outline"
data-k-tooltip="kern-tooltip-left-hint"
aria-describedby="kern-tooltip-left-hint"
>
Left
</button>
<div
id="kern-tooltip-left-hint"
class="k-tooltip animate-tooltip"
role="tooltip"
popover="manual"
hidden
data-k-placement="left"
>
Hint on the left
</div>
<button
type="button"
class="k-button k-button-outline"
data-k-tooltip="kern-tooltip-top-hint"
aria-describedby="kern-tooltip-top-hint"
>
Top
</button>
<div
id="kern-tooltip-top-hint"
class="k-tooltip animate-tooltip"
role="tooltip"
popover="manual"
hidden
data-k-placement="top"
>
Hint on the top
</div>
<button
type="button"
class="k-button k-button-outline"
data-k-tooltip="kern-tooltip-bottom-hint"
aria-describedby="kern-tooltip-bottom-hint"
>
Bottom
</button>
<div
id="kern-tooltip-bottom-hint"
class="k-tooltip animate-tooltip"
role="tooltip"
popover="manual"
hidden
data-k-placement="bottom"
>
Hint on the bottom
</div>
<button
type="button"
class="k-button k-button-outline"
data-k-tooltip="kern-tooltip-right-hint"
aria-describedby="kern-tooltip-right-hint"
>
Right
</button>
<div
id="kern-tooltip-right-hint"
class="k-tooltip animate-tooltip"
role="tooltip"
popover="manual"
hidden
data-k-placement="right"
>
Hint on the right
</div>
</div><button
type="button"
class="k-button k-button-outline k-button-icon"
aria-label="Search"
data-k-tooltip="kern-tooltip-shortcut-hint"
aria-describedby="kern-tooltip-shortcut-hint"
>
<!-- @license lucide-static v1.52.0 - ISC -->
<svg
aria-hidden="true"
focusable="false"
class="lucide lucide-search"
xmlns="http://www.w3.org/2000/svg"
width="24"
height="24"
viewBox="0 0 24 24"
fill="none"
stroke="currentColor"
stroke-width="1.75"
stroke-linecap="round"
stroke-linejoin="round"
>
<path d="m21 21-4.34-4.34" />
<circle cx="11" cy="11" r="8" />
</svg>
</button>
<div
id="kern-tooltip-shortcut-hint"
class="k-tooltip animate-tooltip"
role="tooltip"
popover="manual"
hidden
data-k-placement="top"
>
Search <kbd class="k-kbd gap-1"><span>⌘</span><span>K</span></kbd>
</div><span
class="inline-block rounded-control"
tabindex="0"
role="button"
aria-disabled="true"
aria-label="Export report"
data-k-tooltip="kern-tooltip-disabled-hint"
aria-describedby="kern-tooltip-disabled-hint"
><button type="button" class="k-button k-button-outline pointer-events-none" disabled>
Export report
</button></span
>
<div
id="kern-tooltip-disabled-hint"
class="k-tooltip animate-tooltip"
role="tooltip"
popover="manual"
hidden
data-k-placement="top"
>
Choose a report before exporting.
</div>