title | description |
---|---|
Styles and Themes |
@spuxx/browser-utils provides a set of CSS styles and themes primarily intended for my personal use. |
The package provides a set of CSS styles and themes primarily intended for my personal use. You are free to use it in your own projects, but I will not be accepting pull requests or issues requesting changes to this part of the library.
To use the styles, you need to import the CSS file into your project.
/* JavaScript */
import '@spuxx/browser-utils/styles';
/* CSS */
@import '@spuxx/browser-utils/styles';
After importing the CSS file, you can use any of the included styles directly in your HTML. You can look up all available styles in src/styles.
<div class="spx spx-container">
<button class="spx spx-button" spx-color="gradient" spx-variant="outlined">Click me</button>
</div>
However, the styles are primarily intended for use with SolidJS and my @spuxx/solid library. If you use that library, you simply need to import the styles into your project. Components provided by that library will automatically use the styles.
import '@spuxx/browser-utils/styles.css';
import { Button } from '@spuxx/solid';
export default function App() {
return (
<Button color="gradient" variant="outlined">
Click me
</Button>
);
}
To use the themes, you need to import the CSS file into your project.
/* JavaScript */
import '@spuxx/browser-utils/themes';
/* CSS */
@import '@spuxx/browser-utils/themes';
The library comes with two built-in themes, default
and light
.
Both themes are based on Tailwind's color palette
(also see tailwindcolor.com).
You may override each of those themes by creating a CSS file and overwriting any of the variables:
html,
html *,
* {
/* Overwrite default theme variables */
}
html[spx-theme='light'],
html[spx-theme='light'] *,
*[spx-theme='light'] {
/* Overwrite light theme variables */
}
You can also create your own custom themes by creating a CSS file and overwriting any of the variables:
html[spx-theme='my-theme'],
html[spx-theme='my-theme'] *,
*[spx-theme='my-theme'] {
/* Overwrite any of the default theme variables */
}
🛈 Note: You do not need to overwrite all of the variables. You can only overwrite the ones you want to change.
You may then import your custom theme into your project:
/* JavaScript */
import './themes/my-theme.css';
/* CSS */
@import './themes/my-theme.css';
You may then use your theme by setting the spx-theme
attribute on the html
element:
<html spx-theme="my-theme">
...
</html>
Themes are usually applied to the entire document (by setting the spx-theme
attribute on the html
element).
However, you can also apply a theme to individual components.
To do this, you can use the spx-theme
attribute on the element itself.
<div spx-theme="my-theme">...</div>
The library also provides a set of variables and types for use with TypeScript. They can help you use the styles correctly and in a type-safe manner. You can find them here.