# CSS Zero
An opinionated CSS starter kit for your application. You can think of it like a "no build" Tailwind CSS.
## Installation
Add this gem to your project.
```
bundle add css-zero
```
Add the base.css file to your application.
```
bin/rails generate css_zero:install
```
Add only the components you need. (Optional)
```
bin/rails generate css_zero:add accordion alert alert_dialog badge button card dialog input progress switch table
```
### Requirements
If you are using [Propshaft](https://github.com/rails/propshaft) (recommended) make sure to load all the CSS files in your layout.html.erb.
Click here to see how
```html+erb
<%= stylesheet_link_tag :all, "data-turbo-track": "reload" %>
```
If you are using [Sprockets](https://github.com/rails/sprockets) make sure to load all the CSS files in your application.css.
Click here to see how
```
/*
*= require _reset
*= require animations
*= require borders
*= require colors
*= require effects
*= require filters
*= require grid
*= require sizes
*= require transform
*= require transition
*= require typography
*= require_tree .
*= require_self
*= require zutilities
*/
```
Some icons in the examples are not copied to the project. If you are looking for good ones, I recommend [Lucide](https://lucide.dev).
## Usage
```html
Write most page content using utility classes.
Create components using CSS variables.
Optionally, copy pre-built components into your application.
```
```css
.custom-component {
background-color: var(--red-500);
border-radius: var(--rounded);
block-size: var(--size-4);
}
```
Check the [CSS files](app/assets/stylesheets) in the repository to see the available variables and utility classes.
## Components
### Accordion
Show me the code
```html
Is it accessible?
Yes. It adheres to the WAI-ARIA design pattern.
Is it styled?
Yes. It comes with default styles that matches the other components' aesthetic.
Is it animated?
Yes. It's animated by default, but you can disable it if you prefer.
<%= form.check_box :status, class: "checkbox" %>
<%= form.label :status, "Send a copy to yourself", class: "text-sm font-medium" %>
<% end %>
```
### Progress
Show me the code
```html
```
### Switch
Show me the code
```html+erb
```
### Table
Show me the code
```html
Invoice
Status
Method
Amount
INV001
Paid
Credit Card
$250.00
INV002
Pending
PayPal
$150.00
INV003
Unpaid
Transfer
$350.00
INV004
Paid
Credit Card
$450.00
Paid
$2,500.00
```
## Development
To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and the created tag, and push the `.gem` file to [rubygems.org](https://rubygems.org).
## Contributing
Bug reports and pull requests are welcome on GitHub at https://github.com/lazaronixon/css-zero. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/lazaronixon/css-zero/blob/master/CODE_OF_CONDUCT.md).
## License
The gem is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
## Code of Conduct
Everyone interacting in the CSS Zero project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/lazaronixon/css-zero/blob/master/CODE_OF_CONDUCT.md).