Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

🌈 Write plain CSS while reaping benefits of CSS-in-JS

NotificationsYou must be signed in to change notification settings

nyancss/nyancss

Repository files navigation

Best of both worlds. Nyan CSS lets you write plain CSSwhile reaping benefits of CSS-in-JS.

Write a universal design system. You can reuse the same code anywherestarting from static HTML+CSS and ending with React and Vue.js withoutactually changing the CSS.

Minimalistic. BEM-inspiredNyan CSS convention consistsjust of 3 rules but it as bulletproof as BEM.

Use modern CSS. CoffeeScript long gone from the radars, yet we all loved it ;-)Stick to the platform to ensure the longevity of your code.

Skip to the convention |Join the community

Installation

Seeinstallation instructions for webpack.

Demo

CSS

.Header,.Text {font-family: monospace;}.Header {font-size:2rem;}.Header-size-large {font-size:2.2rem;}.Text-italic {font-style: italic;}

React code

See other options:

importReactfrom'react'import{Header,Text}from'./style.css'functionAnnouncement(){return(<><Headertag="h1"size="large">        Welcome Nyan CSS!</Header><Texttag="marquee"italic>        Please, welcome Nyan CSS!</Text></>)}

Result

A page in a browser with large "Welcome Nyan CSS" and moving italic "Please, welcome Nyan CSS!"

Other options

Show all options

Plain HTML

<h1class="Header Header-size-large">  Welcome Nyan CSS!</h1><marqueeclass="Text Text-italic">  Please, welcome Nyan CSS!</marquee>

Vue.js

importVuefrom'vue'import{Header,Text}from'./style.css'constAnnouncement={components:{'custom-header':Header,'custom-text':Text},template:`    <main>      <custom-header tag='h1' size='large'>Welcome Nyan CSS!!</custom-header>      <custom-text tag='marquee' italic='true'>Please, welcome Nyan CSS!</custom-text>    </main>  `}

Preact

import{h}from'preact'import{Header,Text}from'./style.css'functionAnnouncement(){return(<><Headertag="h1"size="large">        Welcome Nyan CSS!</Header><Texttag="marquee"italic>        Please, welcome Nyan CSS!</Text></>)}

Class names

import{Header,Text}from'./style.css'functionAnnouncement(){return`<h1 class='${Header({size:'large'})}'>Welcome Nyan CSS!</h1><marquee class='${Text({italic:true})}'>Please, welcome Nyan CSS!</marquee>`}

Convention

Component

.Component is a component class.

The name must be in ClassCase, e.g..FormInput or.UI.

In this example,.Button represents<Button />.

.Button {color: white;}

Boolean prop

.Component-disabled is a boolean prop class.

The name extension must be in camelCase, e.g..FormInput-autoFocus or.UI-dev.

.Button-disabled {opacity:0.5;}

In the example,.Button-disabled is applied to the component when itsdisabled prop is truthy:

<Buttontag="button"disabled>  Whatever</Button>

Enum prop

.ComponentName-color-gray is an enum prop class.

The name extensions must be in camelCase, e.g..FormInput-borderColor-lightGray or.UI-env-dev.

.Button-color-red {background: red;}.Button-color-green {background: green;}

.Button-color-red is applied to the component when itscolor prop equals"red":

<Buttontag="button"color="red">  Click Me</Button>

Related packages

Changelog

Seethe changelog.

License

MIT © Sasha Koss


[8]ページ先頭

©2009-2025 Movatter.jp