Sponsor me on GitHub
diff --git a/docs/src/assets/styles.css b/docs/src/assets/styles.css
index 5c79b99..614f920 100644
--- a/docs/src/assets/styles.css
+++ b/docs/src/assets/styles.css
@@ -223,9 +223,6 @@
}
}
@layer utilities {
- .\@container {
- container-type: inline-size;
- }
.pointer-events-none {
pointer-events: none;
}
@@ -258,9 +255,6 @@
.top-0 {
top: calc(var(--spacing) * 0);
}
- .top-1 {
- top: calc(var(--spacing) * 1);
- }
.top-1\/2 {
top: calc(1/2 * 100%);
}
@@ -273,9 +267,6 @@
.right-3 {
right: calc(var(--spacing) * 3);
}
- .left-1 {
- left: calc(var(--spacing) * 1);
- }
.left-1\/2 {
left: calc(1/2 * 100%);
}
@@ -336,9 +327,6 @@
.mb-12 {
margin-bottom: calc(var(--spacing) * 12);
}
- .-ml-1 {
- margin-left: calc(var(--spacing) * -1);
- }
.-ml-1\.5 {
margin-left: calc(var(--spacing) * -1.5);
}
@@ -383,10 +371,6 @@
width: calc(var(--spacing) * 2.5);
height: calc(var(--spacing) * 2.5);
}
- .size-3 {
- width: calc(var(--spacing) * 3);
- height: calc(var(--spacing) * 3);
- }
.size-3\.5 {
width: calc(var(--spacing) * 3.5);
height: calc(var(--spacing) * 3.5);
@@ -448,15 +432,9 @@
.min-h-\[350px\] {
min-height: 350px;
}
- .w-1 {
- width: calc(var(--spacing) * 1);
- }
.w-1\/2 {
width: calc(1/2 * 100%);
}
- .w-2 {
- width: calc(var(--spacing) * 2);
- }
.w-2\/3 {
width: calc(2/3 * 100%);
}
@@ -529,42 +507,21 @@
.flex-1 {
flex: 1;
}
- .flex-shrink {
- flex-shrink: 1;
- }
.shrink-0 {
flex-shrink: 0;
}
- .border-collapse {
- border-collapse: collapse;
- }
- .-translate-x-1 {
- --tw-translate-x: calc(var(--spacing) * -1);
- translate: var(--tw-translate-x) var(--tw-translate-y);
- }
.-translate-x-1\/2 {
--tw-translate-x: calc(calc(1/2 * 100%) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
- .-translate-y-1 {
- --tw-translate-y: calc(var(--spacing) * -1);
- translate: var(--tw-translate-x) var(--tw-translate-y);
- }
.-translate-y-1\/2 {
--tw-translate-y: calc(calc(1/2 * 100%) * -1);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
- .translate-y-0 {
- --tw-translate-y: calc(var(--spacing) * 0);
- translate: var(--tw-translate-x) var(--tw-translate-y);
- }
.translate-y-0\.5 {
--tw-translate-y: calc(var(--spacing) * 0.5);
translate: var(--tw-translate-x) var(--tw-translate-y);
}
- .transform {
- transform: var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,);
- }
.animate-pulse {
animation: var(--animate-pulse);
}
@@ -574,24 +531,15 @@
.cursor-pointer {
cursor: pointer;
}
- .resize {
- resize: both;
- }
.scroll-m-20 {
scroll-margin: calc(var(--spacing) * 20);
}
.scroll-mt-14 {
scroll-margin-top: calc(var(--spacing) * 14);
}
- .scroll-mt-16 {
- scroll-margin-top: calc(var(--spacing) * 16);
- }
.list-decimal {
list-style-type: decimal;
}
- .grid-cols-1 {
- grid-template-columns: repeat(1, minmax(0, 1fr));
- }
.grid-cols-2 {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
@@ -622,9 +570,6 @@
.justify-start {
justify-content: flex-start;
}
- .gap-0 {
- gap: calc(var(--spacing) * 0);
- }
.gap-0\.5 {
gap: calc(var(--spacing) * 0.5);
}
@@ -680,9 +625,6 @@
margin-block-end: calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)));
}
}
- .gap-x-1 {
- column-gap: calc(var(--spacing) * 1);
- }
.gap-x-1\.5 {
column-gap: calc(var(--spacing) * 1.5);
}
@@ -761,9 +703,6 @@
.border-amber-50 {
border-color: var(--color-amber-50);
}
- .border-border {
- border-color: var(--border);
- }
.border-border\/50 {
border-color: var(--border);
@supports (color: color-mix(in lab, red, red)) {
@@ -791,9 +730,6 @@
.bg-sidebar-primary {
background-color: var(--sidebar-primary);
}
- .mask-repeat {
- mask-repeat: repeat;
- }
.object-cover {
object-fit: cover;
}
@@ -830,9 +766,6 @@
.px-4 {
padding-inline: calc(var(--spacing) * 4);
}
- .py-1 {
- padding-block: calc(var(--spacing) * 1);
- }
.py-1\.5 {
padding-block: calc(var(--spacing) * 1.5);
}
@@ -4581,26 +4514,6 @@
inherits: false;
initial-value: 0;
}
-@property --tw-rotate-x {
- syntax: "*";
- inherits: false;
-}
-@property --tw-rotate-y {
- syntax: "*";
- inherits: false;
-}
-@property --tw-rotate-z {
- syntax: "*";
- inherits: false;
-}
-@property --tw-skew-x {
- syntax: "*";
- inherits: false;
-}
-@property --tw-skew-y {
- syntax: "*";
- inherits: false;
-}
@property --tw-space-y-reverse {
syntax: "*";
inherits: false;
@@ -4815,11 +4728,6 @@
--tw-translate-x: 0;
--tw-translate-y: 0;
--tw-translate-z: 0;
- --tw-rotate-x: initial;
- --tw-rotate-y: initial;
- --tw-rotate-z: initial;
- --tw-skew-x: initial;
- --tw-skew-y: initial;
--tw-space-y-reverse: 0;
--tw-space-x-reverse: 0;
--tw-border-style: solid;
diff --git a/docs/src/components/alert-dialog.njk b/docs/src/components/alert-dialog.njk
index 9b06336..7575a6b 100644
--- a/docs/src/components/alert-dialog.njk
+++ b/docs/src/components/alert-dialog.njk
@@ -69,7 +69,7 @@ document.addEventListener('alpine:init', () => {
-If you use Jinja (or Nunjucks), you can use the dialog() macro directly, making sure to set close_on_overlay_click and close_button to False (or false for Nunjucks). Read more about using Basecoat with Jinja and Nunjucks .
+If you use Jinja (or Nunjucks), you can use the dialog() macro directly, making sure to set close_on_overlay_click and close_button to False (or false for Nunjucks). Read more about using Basecoat with Jinja and Nunjucks .
{% set raw_code %}{% raw %}{% set footer %}
Cancel
diff --git a/docs/src/components/combobox.njk b/docs/src/components/combobox.njk
index 597440d..b45df85 100644
--- a/docs/src/components/combobox.njk
+++ b/docs/src/components/combobox.njk
@@ -81,7 +81,7 @@ document.addEventListener('alpine:init', () => {
-If you use Jinja (or Nunjucks), you can use the select() macro directly, making sure to set is_combobox to True (or true for Nunjucks). Read more about using Basecoat with Jinja and Nunjucks .
+If you use Jinja (or Nunjucks), you can use the select() macro directly, making sure to set is_combobox to True (or true for Nunjucks). Read more about using Basecoat with Jinja and Nunjucks .
{% set raw_code %}{% raw %}{% call select(
listbox_attrs={"data-empty": "No framework found."},
diff --git a/docs/src/components/dialog.njk b/docs/src/components/dialog.njk
index 54b9f24..c93419e 100644
--- a/docs/src/components/dialog.njk
+++ b/docs/src/components/dialog.njk
@@ -100,7 +100,7 @@ document.addEventListener('alpine:init', () => {
-If you use Jinja (or Nunjucks), you can use the dialog() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
+If you use Jinja (or Nunjucks), you can use the dialog() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
{% set raw_code %}{% raw %}{% set footer %}
Cancel
diff --git a/docs/src/components/dropdown-menu.njk b/docs/src/components/dropdown-menu.njk
index 2f10038..94ca0be 100644
--- a/docs/src/components/dropdown-menu.njk
+++ b/docs/src/components/dropdown-menu.njk
@@ -124,7 +124,7 @@ document.addEventListener('alpine:init', () => {
-If you use Jinja (or Nunjucks), you can use the dropdown_menu() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
+If you use Jinja (or Nunjucks), you can use the dropdown_menu() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
{% set raw_code %}{% raw %}{% call dropdown_menu(
id="dropdown-menu",
diff --git a/docs/src/components/popover.njk b/docs/src/components/popover.njk
index d6ca2c1..446ffb6 100644
--- a/docs/src/components/popover.njk
+++ b/docs/src/components/popover.njk
@@ -99,7 +99,7 @@ document.addEventListener('alpine:init', () => {
{% set raw_code %}{% raw %}{% call popover(
diff --git a/docs/src/components/select.njk b/docs/src/components/select.njk
index 139cd0a..3b4762c 100644
--- a/docs/src/components/select.njk
+++ b/docs/src/components/select.njk
@@ -118,7 +118,7 @@ document.addEventListener('alpine:init', () => {
-If you use Jinja (or Nunjucks), you can use the dropdown_menu() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
+If you use Jinja (or Nunjucks), you can use the dropdown_menu() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
{% set raw_code %}{% raw %}{% call select(name="select-js") %}
diff --git a/docs/src/components/tabs.njk b/docs/src/components/tabs.njk
index 11f3194..ce66836 100644
--- a/docs/src/components/tabs.njk
+++ b/docs/src/components/tabs.njk
@@ -118,7 +118,7 @@ document.addEventListener('alpine:init', () => {
-
If you use Jinja (or Nunjucks), you can use the tabs() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
+
If you use Jinja (or Nunjucks), you can use the tabs() macro directly. Read more about using Basecoat with Jinja and Nunjucks .
{% set raw_code %}{% raw %}{% set account_panel %}
diff --git a/docs/src/installation.njk b/docs/src/installation.njk
index f454e61..710e3ae 100644
--- a/docs/src/installation.njk
+++ b/docs/src/installation.njk
@@ -88,7 +88,7 @@ toc:
All of the components try and implement WAI-ARIA standards to make them accessible.
-
Use the CLI
+
If you're using Nunjucks or Jinja, you can use the CLI to install the CSS and macros for any of the complex components(e.g. Dialog ). It will copy the JS and `.html.jinja or .njk macros into your code.
diff --git a/docs/src/introduction.njk b/docs/src/introduction.njk
index f32c90f..31904d5 100644
--- a/docs/src/introduction.njk
+++ b/docs/src/introduction.njk
@@ -1,6 +1,63 @@
---
layout: layouts/page.njk
title: Introduction
-description: Basecoat is a set of beautifully-designed, accessible components and a code distribution platform. Works with your favorite frameworks and AI models. Open Source. Open Code.
+description: Basecoat is a set of components built with Tailwind CSS. It is designed to be used with any traditional web stack
+toc:
+ - label: Why Basecoat?
+ id: why
+ - label: How it works
+ id: how-it-works
+ - label: How can I help?
+ id: how-can-i-help
---
+
+
+
+
Basecoat brings the magic of shadcn/ui to any traditional web stack: no React required.
+
+
Tailwind won. But building UIs with utility classes alone kinda sucks. Most Tailwind libraries like Flowbite, Preline, or even Tailwind UI ask you to copy walls of unreadable classes into your HTML. It works, but it's messy and hard to maintain.
+
+
shadcn/ui avoids that by wrapping everything in React components. It also gives you a killer design system, theme support, a CLI, and a growing ecosystem.
+
+
But maybe you're not using React. Maybe your app is built with plain HTML. Or Flask. Or Rails. Or Laravel. Or Django. Or whatever.
+
+
That's where Basecoat comes in. It gives you modern, accessible components with the simplicity of plain HTML and Tailwind. Basecoat is:
+
+
+ Lightweight : no runtime JS, just CSS and tiny Alpine.js scripts for the more interactive components.
+ Easy to use : add classes like btn or input and you're done.
+ Framework-agnostic : works with any backend or frontend stack.
+ Accessible : components follow accessibility best practices.
+ Dark mode ready : respects your Tailwind config.
+ Extendable : tweak styles with Tailwind or CSS variables.
+ Themable : fully compatible with shadcn/ui themes.
+ Readable : no class soup, just clean markup.
+ Free and open source : MIT licensed.
+
+
+
+
+
+
+
Add a single CSS file to your Tailwind setup. Use components by dropping in simple classes like btn, form, or card.
+
+
Some components (like modals or dropdowns) use a tiny bit of Alpine.js. You can skip it if you don't need interactivity.
+
+
There's also a CLI to help you scaffold components and get set up fast.
+
+
Check out the installation guide to get started.
+
+
+
+
+
+
Basecoat is 100% open source and free.
+
+
+
\ No newline at end of file