# 項目結構
深入挖掘UIkit的核心,了解關于它的一切。
## GitHub
UIkit被托管在 [GitHub](https://github.com/uikit/uikit) 上,基于 [MIT 許可協議](http://opensource.org/licenses/MIT)。 歡迎使用它應用于個人或商業項目。想要獲取 UIKit 所有的源文件,只需克隆 [GitHub](https://github.com/uikit/uikit) 上的資源庫,或者直接下載最新的版本。
[下載源代碼](https://github.com/uikit/uikit/archive/master.zip)
* * *
## 文件結構
UIkit 基于[LESS](http://www.lesscss.net/)創建,LESS是一款CSS預處理器,將 CSS 賦予了動態語言的特性,如變量,繼承,運算,函數等。它將寫入LESS中的代碼編譯成為CSS。它將寫在Less里的代碼編譯成CSS。UIkit主要的文件結構如下:
| 文件夾 | 描述 |
| --- | --- |
| `/docs` | 包含你正在看的UIkit文檔的絕大多數文件 |
| `/src` | 包含全部Less和JavaScript組件文件 |
| `/tests` | 包含所有組件的測試文件 |
| `/themes` | 在子文件夾中包含的所有額外提供的主題文件。 |
| `/vendor` | 包含UIkit所使用的jQuery和其他的外部庫。 |
所有編譯版和壓縮版CSS文件、JS文件,以及Less和Sass文件都能在獨立的 [Bower UIkit repository](https://github.com/uikit/bower-uikit) 項目中找到。查看 [Less 和 Sass 文件](documentation_less-sass.html) 獲取更多信息。
* * *
## 自動地預處理
為了自動化處理Less文件編譯成為CSS的過程,我們使用 [Gulp](http://gulpjs.com/),一款基于 [Node.js](http://nodejs.org/) 的前端構建工具,它監控你的工作目錄。無論何時,只要你保存了有修改行為的源文件,Gulp都會自動地將所有文件編譯成獨立的CSS文件。
首先,你需要安裝Node,并設置 `gulp` 作為一個全局的安裝。最后,切換到UIkit目錄,安裝Node依賴模塊(Node dependencies)。
```
npm install -g gulp
cd uikit
npm install
```
現在,你可以運行Gulp來創建和修改版本。UIkit的內置版本被放在 `/dist` 目錄中。通過主題名稱參數來只創建一個指定的主題。
```
gulp [-t themename]
```
你也可以設置Gulp監控你的工作目錄,這樣它便能在你每次保存時,自動地編譯文件。通過主題名稱參數來監控一個指定的主題以提升建設進度。
```
gulp watch [-t themename]
```
加載新的主題和樣式到定制工具中。
```
gulp indexthemes
```
* * *
## 測試
UIkit為每個組件提供測試文件。其中每個頁面都包含了組件的測試示例,并為你提供了一個關于盒模型所支持的所有可能性的總覽。
UIkit 使用 [BrowserSync](http://www.browsersync.io/) 加速你的工作流程。運行 `gulp sync` ,你就能在制作自己的主題或者修改現有主題時,即時地查看改動,這不只是在瀏覽器中,還支持跨設備。你能在測試中切換所有的組件和主題,甚至切換到RTL模式(從右到左)
[前往測試](../tests/overview.html)
- UIkit 中文文檔
- 開始使用
- 初學者
- 開始使用
- 如何自定義
- 布局示例
- 開發者
- 項目結構
- Less & Sass 文件
- 創建主題
- 創建樣式
- Customizer.json
- JavaScript
- 自定義前綴
- 核心組件
- 默認
- 基礎
- 打印
- 布局類組件
- 網格
- 面板/Panel
- 塊/Block
- 文章
- 評論/Comment
- 效果/Utility
- Flex 布局
- 覆蓋/Cover
- 導航類組件
- 導航菜單
- 導航欄
- 二級導航
- 面包屑/Breadcrumb
- 分頁
- 選項卡
- 縮略圖導航/Thumbnav
- 頁面元素
- 列表
- 描述列表
- 表格
- 表單
- 常用組件
- 按鈕
- 圖標
- 關閉/Close
- 徽章/Badge
- 提示框
- 縮略圖/Thumbnail
- 遮罩/Overlay
- 文本
- 列
- 動畫
- 對比度/Contrast
- JAVASCRIPT組件
- 下拉菜單
- 模態對話框
- 抽屜/Off-canvas
- 切換器/Switcher
- 撥動/toggle
- 滾動監聽/Scrollspy
- 平滑滾動
- 附加組件
- 布局類組件
- 動態網格
- 視差網格
- 導航類組件
- 圓點導航
- 滑動導航/Slidenav
- 動態分頁
- 常用組件
- 高級表單
- 文件表單/Form file
- 密碼表單
- 選擇表單
- 占位符
- 進度條/Progress
- JAVASCRIPT組件
- 燈箱/Lightbox
- 自動完成/Autocomplete
- 日期選擇器/Datepicker
- HTML 編輯器
- 滾動條/Slider
- 滑塊集/Slideset
- 幻燈片/Slideshow
- 視差/Parallax
- 手風琴/Accordion
- 通知/Notify
- 搜索/Search
- 可嵌套/Nestable
- 可排序/Sortable
- 附著/Sticky
- 時間選擇器
- 工具提示/Tooltip
- 上傳