# Tailwind CSS & ASP.NET Core

<datetime class="hidden">2024-07-30T13:30</datetime>

<!--category-- ASP.NET, Tailwind -->
Tailwind CSS è un'utilità-la prima struttura CSS per costruire rapidamente progetti personalizzatiM SK1 È altamente personalizzabile, bassaMSC3 una struttura CSS a livello che vi dà tutti i componenti di costruzione necessari per costruire progetti personalizzate senza alcun tipo annoiante di stili opinionati che dovete combattervi per sovraridere

Uno dei grandi vantaggi di Tailwind rispetto a 'traditionaliM SK1 strutture CSS come Bootstrap è che Tail Wind include un 'scanning' e un passo di costruzione così include solo il CSS che usate davvero nel vostro progettoMSC4 Questo significa che potete includere l'intera biblioteca CSS di Taelwind nel vostro project senza preoccuparsi della dimensione del file CSSMNK5

## L'installazione

Un grande difetto rispetto a Bootstrap è che Tailwind non è un 'drop in'file CSSM SK2 dovete installarlo usando npm o filamento (la sezione successiva viene dal [Questo.](https://tailwindcss.com/docs/installation)).

```bash
npm install -D tailwindcss
npx tailwindcss init
```

Questo installerà Tailwind CSS e creerà un [`tailwind.config.js` ](#tailwindconfigjs) filein the root of your project. Questo file è usato per configurere Tailwind CSS.

### Pacco.json

Se guardate [fonte di questo progetto](https://github.com/scottgal/mostlylucidweb/tree/main/Mostlylucid) Voi' vedrete che ho un `package.json` file che include le definizioni 'script' e 'devDependenciesM SK3

```json
{
  "scripts": {
    "dev": "npm-run-all --parallel dev:*",
    "dev:js": "webpack",
    "dev:tw": "npx tailwindcss -i ./src/css/main.css -o ./wwwroot/css/dist/main.css",
    "watch": "npm-run-all --parallel watch:*",
    "watch:js": "webpack --watch --env development",
    "watch:tw": "npx tailwindcss -i ./src/css/main.css -o ./wwwroot/css/dist/main.css --watch",
    "build": "npm-run-all --parallel build:*",
    "build:js": "webpack --env production",
    "build:tw": "npx tailwindcss -i ./src/css/main.css -o ./wwwroot/css/dist/main.css --minify"
  },
  "devDependencies": {
    "@tailwindcss/aspect-ratio": "^0.4.2",
    "@tailwindcss/forms": "^0.5.7",
    "@tailwindcss/typography": "^0.5.12",
    "@types/alpinejs": "^3.13.10",
    "autoprefixer": "^10.4.19",
    "cssnano": "^7.0.4",
    "daisyui": "^4.12.10",
    "npm-run-all": "^4.1.5",
    "tailwindcss": "^3.4.3",
    "ts-loader": "^9.5.1",
    "typescript": "^5.4.5",
    "webpack": "^5.91.0",
    "webpack-cli": "^5.1.4"
  }
}
```

Questi sono i 'scripts' che uso per costruire il file CSS Tailwind. `dev` Il script è quello che uso per costruire il file CSS per lo sviluppo. `watch` Il script è quello che uso per guardare il file CSS per i cambiamenti e ricostruirlo. `build` Script è quello che uso per costruire il file CSS per la produzione.

La sezione devDependencies è come i vostri pacchetti nuget per i vostri progetti .NET. Sono i pacchetti che vengono usati per costruire il file CSS

### Tailwind.config.js

Questi sono usati insieme al `tailwind.config.js` file che è nella radice del progetto. Questo file viene usato per configurere Tailwind CSS. Qui c'è il `tailwind.config.js` file che uso:

```javascript
// tailwind.config.js

const defaultTheme = require("tailwindcss/defaultTheme");

module.exports = {
    content:   [
        './Pages/**/*.{html,cshtml}',
        './Components/**/*.{html,cshtml}',
        './Views/**/*.{html,cshtml}',
    ],
    safelist: ["dark"],
    darkMode: "class",
    theme: {

        },
    },
    plugins: [
        require("@tailwindcss/typography")({
            modifiers: [],
        }),
        require("@tailwindcss/forms"),
        require("@tailwindcss/aspect-ratio"),
        require('daisyui'),
    ]
};
```

Questo file è usato per configurere Tailwind CSS. `content` la sezione viene usata per dire a Tailwind CSS dove cercare le classi di CSS che state usando nel vostro progetto. In ASP.NET Core questo di solito includerà: `Pages`, `Components`, e `Views` folders. VoiM SK1 noterete che questo può anche 'cshtml ' fileMSC4
Uno 'gotcha' per il vento di coda è che si può includere. ` <div class="hidden></div> ` sections per assicurarvi di includere tutte le classi css necessarie nella 'build' che non avete nella vostra targhetta.

L'informazione figura nella parte dispositiva. `safelist` la sezione viene usata per dire a Tailwind CSS quali classi includere nel file CSS. `darkMode` la sezione viene usata per dire a Tailwind CSS di usare le classi in modo buio. `theme` la sezione è usata per configurere il tema di Tailwind CSS. `plugins` la sezione è usata per includere i plugin che state usando nel vostro progetto. Questo viene poi usato da Tailwind per compilare il file CSS sepcified in:

"buildM SK1tw": "npx tailwindcss -i SSK5srcMNK6cssMKK7mainMMK8cs s S-o M./wwwrootMSC11csSMEK12distMST13main\MST14cs R--minifyMSS16

### CSPROJ

La parte finale di questo è nel file CSProj stesso. Questo include una sezione proprio prima della fine. `<Project> ` tag:

```xml

    <Target Name="BuildCss" BeforeTargets="Compile">
        <Exec Command="npm run dev" Condition=" '$(Configuration)' == 'Debug' " />
        <Exec Command="npm run build" Condition=" '$(Configuration)' == 'Release' " EnvironmentVariables="NODE_ENV=production" />
    </Target>

```

Come potete vedere si riferisce al script di costruzione per ricostruire il CSS su ogni progetto build.