Awesome
<p align="center"><img src="https://raw.githubusercontent.com/Spiderpig86/Cirrus/master/img/CirrusLogo.png" width="200"></p> <h1 align="center">Cirrus</h1> <div align="center"> </div> <p align="center"> A component-and-utility-centric SCSS framework designed for rapid prototyping. Use beautiful pre-built components to bootstrap your next project and utility classes to polish your final design. <br /> <a href="https://cirrus-ui.netlify.app/"><strong>Check out the docs »</strong></a> <br /> <br /> <a href="https://github.com/Spiderpig86/Cirrus/issues/new?assignees=&labels=&template=bug-report.md&title=" target="_blank">Request Feature</a> / <a href="https://github.com/Spiderpig86/Cirrus/issues/new?assignees=&labels=&template=bug-report.md&title=" target="_blank">Report a Bug</a> / <a href="https://cirrus-ui.netlify.app/getting-started/examples" target="_blank">Examples</a> </p>:sparkles: Features
- :art: Beautiful Components - Beautifully designed components come right out of the box for rapid prototyping.
- :balloon: Sass First - Forget bundling tons of JavaScript with each component. All styles require no JS for interactions/functionality (see Modals, Dropdowns, etc.).
- :rainbow: Configuration at its Core - Add additional components, remove utility classes, disable features, etc. Cirrus takes a generative approach to building your stylesheets.
- :zap: Lightweight - A large amount of features with a minimal footprint.
- :iphone: Responsive - Fully responsive by design.
- :computer: Vscode Extension Support - Install it here.
- 🤹♂️ Playground - Try out whatever experiment you want with Cirrus here.
:dart: Supported Browsers
Cirrus relies on What CSS to prefix? to determine which selectors need prefixes.
📦 Install
Npm
npm install cirrus-ui
Yarn
yarn add cirrus-ui
CDN
For CDNs, it is recommended to attach a specific versions to the URLs to avoid unexpected updates to maintain consistency in your project.
Please do not reference the dist
folder artifacts directly as these are subject to change at any time.
Unpkg
<link rel="stylesheet" href="https://unpkg.com/cirrus-ui">
JsDelivr
<link rel="stylesheet" href="https://www.jsdelivr.com/package/npm/cirrus-ui">
Check out the Setup guide for more information.
:hammer: Usage
Basic Page
<!DOCTYPE html>
<html>
<head>
<title>Hello World</title>
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=0" />
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge;" />
<link href="https://unpkg.com/cirrus-ui" type="text/css" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Nunito+Sans:200,300,400,600,700" rel="stylesheet" />
<link href="https://fonts.googleapis.com/css?family=Montserrat:400,700" rel="stylesheet" />
</head>
<body>
<h1>👋Hello World</h1>
</body>
</html>
React
import { StrictMode } from "react";
import ReactDOM from "react-dom";
import App from "./App";
import 'cirrus-ui'; // You can import it here if you want
const rootElement = document.getElementById("root");
ReactDOM.render(
<StrictMode>
<App />
</StrictMode>,
rootElement
);
Vue
import Vue from 'vue';
import App from './App.vue';
import 'cirrus-ui';
Vue.config.productionTip = false;
new Vue({
render: (h) => h(App),
}).$mount('#app');
Svelte
import App from "./App.svelte";
import "cirrus-ui";
const app = new App({
target: document.body
});
export default app;
Sass/Scss
@use "node_modules/cirrus-ui/src/cirrus-ext" as * with (
$config: (
excludes: (
ABSOLUTES,
),
opacity: null, // Disable default opacity classes
extend: (
// Add your own
opacity: (
25: .25,
50: .5,
75: .75,
)
)
),
);
Check out the Setup guide for more information.
:computer: Development
Use Gitpod, a free online dev environment for GitHub.
Or clone locally:
$ git clone git@github.com:Spiderpig86/Cirrus.git
$ cd cirrus
$ yarn install
$ yarn watch
:crystal_ball: What's Included
- Base - base styles.
- Animations
- Default
- Font
- Grid
- Layout
- Media
- Modifiers
- Spacing
- Builds - build files for
core
andext
. - Components - framework components.
- Accordion
- Avatar
- Breadcrumb
- Button
- Card
- Code
- Footer
- Forms
- Frames
- Header
- Links
- Lists
- Modal
- Pagination
- Placeholder
- Progress
- Table
- Tabs
- Tags
- Tiles
- Toast
- Tooltips
- Internal - internal APIs, functions, constants, etc.
- Utils - utility classes.
- Absolute
- Blur
- Border
- Clearfix
- Display
- Flex
- Misc
- Opacity
- Overflow
- Position
- Shadow
- Transitions
- Z-Index
:clap: Related Projects
Project | Description |
---|---|
vue-cirrus | Cirrus components for Vue.js with straightforward syntax |
cirrus-blocks | A collection of beautiful components built with Cirrus ready to be copied and pasted. |
cirrus-reset | A simple CSS reset from Cirrus. |
:newspaper: License and Attribution
Cirrus is licensed under the MIT license. If this frame work has helped you in any way, attribution in the footer of your website would be much appreciated.
🤝 Contributing
Read our contributing guide and improve Cirrus together.
We welcome all contributions. Please read our CONTRIBUTING.md first. You can submit any ideas as pull requests or as GitHub issues. If you'd like to improve code, check out the Development Instructions and have a good time! :)
When creating issues, please follow the templates provided for the issue type you selected. The added detail and formatting will help me understand and resolve your issue faster.
❤️ Sponsors and Backers
I would greatly appreciate any support for the continued development of this project. :smile: