所有樣式均經過預配置及優化,馬上開始建置任何你想要的設計吧!
<div class="bg:gray-22 p:10 r:10 max-w:350"> <img class="object:cover w:full square r:5" src="/images/clothes.jpeg" loading="lazy" alt="clothes" /> <div class="mt:10 p:15"> <div class="font:24 font:bold capitalize">texture crew sweater</div> <div class="font:14 font:gray-66 mt:5">Designed for on the move</div> <div class="mt:12 font:semibold">$120.0 USD</div> <div class="mt:12 flex gap:8"> <button class="square w:40 h:40 font:0 round b:1|solid|gray-28 p:3"> <div class="bg:white full round">white</div> </button> <button class="square w:40 h:40 font:0 round b:1|solid|gray-28 p:3"> <div class="bg:#999 full round">white</div> </button> <button class="square w:40 h:40 font:0 round b:1|solid|gray-28 p:3"> <div class="bg:#333 full round">white</div> </button> </div> <div class="mt:20 font:12 font:semibold letter-spacing:2 font:gray-66 uppercase">size</div> <div class="mt:12 flex gap:8"> <button class="p:10|15 r:3 font:14 font:semibold b:1|solid|gray-28">XS</button> <button class="p:10|15 r:3 font:14 font:semibold bg:gray-28">S</button> <button class="p:10|15 r:3 font:14 font:semibold b:1|solid|gray-28">M</button> <button class="p:10|15 r:3 font:14 font:semibold b:1|solid|gray-28">L</button> <button class="p:10|15 r:3 font:14 font:semibold b:1|solid|gray-28">XL</button> </div> <a class="font:gray-66 font:12 text:underline mt:20 inline-block" href="/"> Get delivery dates </a> </div></div>
想快速加上 filter
, transform
和 grid
效果嗎?我們提供了像是 scale(2)
, blur(5)
之類的簡寫值,方便你輕鬆實現進階的 CSS 效果。
<div class="grid-cols:3 gap:10 align-items:center {object:cover;width:full}_img"> <div class="rotate(-8) aspect:2/3"><img src="/images/modern-effect1.jpeg" width="200" height="300" alt="modern effects 1" quality={1} /></div> <div class="translateY(-30) translateY(-140)@sm blur(5) aspect:2/3"><img src="/images/modern-effect2.jpeg" width="200" height="300" alt="modern effects 2" quality={1} /></div> <div class="transform:scale(.8)rotate(8) aspect:2/3"><img src="/images/modern-effect3.jpeg" width="200" height="300" alt="modern effects 3" quality={1} /></div> <div class="sepia(1) translate(-40,20) mask-image:linear-gradient(black,transparent) aspect:2/3"><img src="/images/modern-effect4.jpeg" width="200" height="300" alt="modern effects 4" quality={1} /></div> <div class="blend:lighten grayscale(1) grid-col:2/2|span grid-row:2/2|span mt:-50 mask-image:linear-gradient(black,transparent)"><img src="/images/modern-effect5.jpeg" width="400" height="600" alt="modern effects 5" quality={50} /></div></div>
Front-end needs a revolution
Shilin night market later 🥰 ?
task done 🙌🏻
Easy game easy life
Let me write the doc !
從沒想過 :hover
, :before
, ::placeholder
, :where()
可以直接在 HTML 中使用?
<div class="bg:gray-22.active active p:8|20_li p:10|0 r:10 w:full max-w:340@sm"> <input class="bg:gray-18:focus font:gray-40::placeholder outline:0 font:14 w:calc(100%-1.25rem) mx:10 p:12 lh:1 r:5" placeholder="Search for chats and messages" type="search" /> <ul class="@shake|1s|infinite>li:first list-style:none mt:10"> {users.map((user, index) => <li class="bg:gray-28:hover bg:gray-32:active flex gap:12 cursor:pointer" key={index}> <div class="rel"> <img src={user.url} width="40" height="40" class="round object:cover" alt="avatar" /> {index < 2 && <svg class="abs right:1 bottom:1 bg:green-70 outline:2|solid|white outline:gray-22@dark round w:7 h:7" />} </div> <div> <div class="flex align-items:center"> <div class="text:14 font:medium font:gray-88@dark capitalize">{user.name}</div> <div class="font:12 font:fade-54 font:gray-44@dark ml:8">{user.time}</div> </div> <p class="text:13 m:0">{user.message}</p> </div> </li> )} </ul></div>
預設提供的 十個響應式斷點 @3xs~@4xl
可讓你應用於大多情況和設備。你不僅可以指定像 font:32@>=1234
的任意斷點,甚至連運算子 text:center@>=768&<1024
都支援。
由於響應式斷點可以應用在所有樣式,因此你可以達到最精細的版面佈局。
了解更多關於響應式斷點<h2>Mountain Photos</h2><div class="grid-cols:2 grid-cols:3@xs grid-cols:4@sm grid-cols:5@md gap:15 gap:20@sm mt:20"> <div class="flex grid-col-span:2 grid-row-span:2"> <img class="r:5" src={`/images/mountain1.jpeg`} width="600" height="300" alt="mountain" quality={50} priority={true} /> </div> {mountains.map((mountain) => <div class="flex" key={mountain}> <img class="r:5" src={`/images/${mountain}.jpeg`} width="300" height="150" alt="mountain" quality={50} priority={true} /> </div> )}</div>
更少的程式碼,更少的思考,更少的維護
不再需要親自撰寫 CSS 規則,這也代表沒有任何 CSS 檔需要維護。
根據行為及響應式斷點對 CSS 規則進行智慧排序。
依樣式及屬性特徵預設實務常用的單位及轉換。
<head> <style id="master-css"></style></head><body> <h1 class=""> Watch how I speed up the production </h1> <h2 class=""> Watch how I sort the breakpoints </h2> <a class=""> Watch how I sort the behavior </a> <p class=""> Watch how I convert the units </p></body>
/* Automatically generate CSS rules in <style id="master-css"> */
更簡練、更直覺、更敏捷
像樂高一樣以零命名成本組合 UI,同時保有了修改時的靈活性。
使用速記、語義、首字母縮略、符號甚至群組讓你的程式碼更加精簡。
直接增加 @breakpoint
, :selector
, 甚至 !important
到後綴便立馬見效。
我們的本意不是讓你直接寫 CSS,但你仍可以這樣做。
<a class="display:block font-style:italic aspect:1/1 border-radius:50% width:100% height:100% position:relative visibility:invisible isolation:isolate"></a>
試一試更合理的語意。 ↓ 63% 程式碼
<a class="block italic square round full rel invisible isolate"></a>
<a class="animation-name:fade animation-duration:1s animatino-timing-function:ease transition-property:opacity transition-duration:.3s margin-top:1rem margin-bottom:1rem margin-right:2rem margin-left:2.5rem"></a>
嘗試用速記重構。 ↓ 62% 程式碼
<a class="animation:fade|1s|ease transition:opacity|.3s margin:16|32|16|40"></a>
或使用建議的符號和首字母縮略。 ↓ 80% 程式碼
<a class="@fade|1s|ease ~opacity|.3s m:16|32|16|40"></a>
我想在視口寬度 >=1024px
的時候按鈕大些,然後禁用的時候變淡。
<button style="font-size: .875rem; text-align: center; height: 2.5rem;" disabled>嗚嗚...</button>
行內樣式不能應用選擇器、媒體查詢和諸多 CSS 功能。現在,以最簡潔的語法實踐它們。
<button class="font:14 text:center height:40 height:56@md opacity:.5[disabled]" disabled>耶!</button>
<ul class="block>li:hover@md p:16>li:hover@md w:full>li:hover@md text:center>li:hover@md font:blue/.5>li:hover@md"></ul>
找出共同之處,然後簡化它。 ↓ 45% 程式碼
<ul class="{block;p:16;w:full;text:center;font:blue/.5}>li:hover@md"></ul>
時而任意,時而統一
import { Style } from '@master/css'; Style.extend('classes', { btn: 'px:18 h:40 font:14 font:medium r:4 inline-flex align-items:center', container: 'max-w:1280 px:20 px:40@sm mx:auto'});
<!-- 將他們應用在 HTML 看起來像這樣 --><button class="btn bg:blue-60 bg:blue-36:hover"> Submit</button> <div class="container text:center"> <h2>Customize to your design system.</h2></div>
更靈活且能做得更多
<div class="font:teal-70 font:purple-70:hover font:96 font:heavy">Aa</div>
動態賦值適用於所有樣式,因此你甚至可以從服務器獲取數據後再進行賦值。
<div className={`font:teal-${size} font:purple-${size}:hover font:96 font:heavy`}>
Aa
</div>
<div class="scaleX(-1) ~transform|.3s font:96 font:heavy">Aa</div>
對於有條件地操縱類名,你可以使用 vanilla JS 或任何你喜歡的框架:
<div className={(flipped ? 'scaleX(-1) ' : '') + '~transform|.3s font:96 font:heavy'}>
Aa
</div>
你獲得了運行時的靈活性和更快的頁面加載
掃描及提取當前頁面的類名,並只生成當頁所需的 CSS。
提前生成 CSS 以改進首次繪製的時間,並在瀏覽器端繼續使用 JIT。
透過差異演算法,CSS 規則將不會重複,這將有效地減少輸出大小。
import * as express from 'express';import { Style, StyleSheet } from '@master/css';import { render } from '@master/css/render';// A simple example for expressapp.get('/', function(req, res) { res.render('index.html', (error, html) => { if (err) console.log(err) return render(html, { StyleSheet }).html; })})
<!-- User gets pre-rendered HTML on the browser side. --><!DOCTYPE html><html lang="en"><head> <style id="master-css">...</style> <title>Master CSS - A Virtual CSS language with enhanced syntax</title> <meta charset="utf-8"> <meta name="viewport" content="width=device-width, initial-scale=1"> <script src="https://cdn.master.co/css"></script></head><body> <h1 class="block font:48@md p:12">Hello World</h1> <a class="bg:blue bg:blue-64:hover">Get Started</a> <p class="bg:blue bg:blue-64:hover">Sharing CSS Rules</p></body></html>
/* <style id="master-css"> */.block { display: block}.p\:12 { padding: 0.75rem}.bg\:blue { background-color: #175fe9}.bg\:blue-64\:hover:hover { background-color: #6599f0}@media (min-width:1024px) { .font\:48\@md { font-size: 3rem }}
突出顯示類名語法的先驅
樣式名稱、值、語義和選擇器的智慧建議。
突出顯示類名,使它們更易於閱讀和識別。
將鼠標懸停在類名上以查看 CSS 規則的生成。
透過你最熟悉的框架或建置工具起手