適用於 <Component> 時代的 CSS

以快速、強類型和靈活的方式設計您的樣式。

以下公司正在使用

來創建像這樣精美的網站

探索更多
Stars on GitHubCurrent versionMonthly downloadsGzipped sizeDiscord

開始使用

安裝

要下載 styled-components,請執行

npm install styled-components

這樣就完成了!您現在可以在您的應用程式中使用它了!(是的,不需要建置步驟 👌)

注意事項

建議(但非必要)也使用 styled-components Babel 插件。它提供了許多好處,例如更易讀的類別名稱、伺服器端渲染相容性、更小的 bundles 等等。

您的第一個 styled component

假設您想要創建一個簡單且可重複使用的 <Button /> 元件,您可以在整個應用程式中使用它。應該有一個普通版本和一個大的、primary 版本,用於重要的按鈕。渲染後應該如下所示:(這是一個實際範例,點擊它們!)

首先,讓我們導入 styled-components 並創建一個 styled.button

import styled from 'styled-components'


const Button = styled.button``

這裡的 Button 變數現在是一個 React 元件,您可以像使用其他 React 元件一樣使用它!這種不尋常的反引號語法是一個新的 JavaScript 功能,稱為 標記模板字面值

您知道如何使用括號調用函數嗎?(myFunc())現在,您也可以使用反引號調用函數!(進一步了解標記模板字面值

如果您現在渲染我們可愛的元件(就像任何其他元件一樣:<Button />),您將獲得

它渲染了一個按鈕!但這不是一個很漂亮的按鈕 😕 我們可以做得更好,讓我們給它一些樣式,展現它隱藏的美麗!

const Button = styled.button`
  background: transparent;
  border-radius: 3px;
  border: 2px solid #BF4F74;
  color: #BF4F74;
  margin: 0 1em;
  padding: 0.25em 1em;
`

如您所見,styled-components 允許您在 JavaScript 中編寫實際的 CSS。這表示您可以使用您喜愛的所有 CSS 功能,包括(但不限於)媒體查詢、所有偽選擇器、嵌套等等。

最後一步,我們需要定義主要按鈕的外觀。為此,我們還從 styled-components 導入 { css } 並將一個函數插入到我們的模板字面值中,該函數將接收我們元件的 props

import styled, { css } from 'styled-components'


const Button = styled.button<{ $primary?: boolean; }>`
  background: transparent;
  border-radius: 3px;
  border: 2px solid #BF4F74;
  color: '#BF4F74';
  margin: 0 1em;
  padding: 0.25em 1em;


  ${props =>
    props.$primary &&
    css`
      background: '#BF4F74';
      color: white;
    `};
`

這裡我們的意思是,當設置了 $primary 屬性時,我們想要向我們的元件添加更多 css,在本例中更改背景和顏色。

就這樣,我們完成了!看看我們完成的元件

真棒 😍 這也是一個即時更新的編輯器,所以可以稍微玩弄一下,感受使用 styled-components 的感覺!準備好後,請深入閱讀文件,了解 styled-components 可以為您做的所有酷炫的事情

繼續閱讀下一頁

文件

#黑人的命也是命 ✊🏿 支持平等正義倡議