薛良斌:Sass和Compass早期實踐者寄語
CSS1在1996年提出時,目的是作為一個簡單的樣式機制,讓作者與讀者都能為HTML檔案新增或改寫樣式,但是僅限於字型、顏色、框線、間距等。在當初的建議書(http://www.w3.org/TR/REC-CSS1-961217#appendix-e)的附錄有這句話:
我們不預期CSS會進化成一門程式語言。
這句話在2014年讀來,是多麼的諷刺。今天如果你不掌握任何一種CSS前處理器,大概都不好意思說自己是個合格的前端工程師。
當時規劃CSS語言的人們認為,每個人都應該可以輕鬆掌握CSS,所以它不能太複雜,更不應該有一般程式語言具備的變數、邏輯、函式,等等。但是隨著現實需求越來越多,CSS陸續增添了排版佈局、陰影圓角、動畫分鏡,甚至3D特性,使得CSS網頁設計早已不是一件簡單的事情。更何況我們還得面對“一千零一個”瀏覽器臭蟲與相容問題,以及像是罰寫小學生的眾多廠商字首。撰寫CSS成了一種黑魔術,更別提要維護它了。
幸好我們不需要絕望,隨著LESS、Sass、Stylus等CSS前處理器的興起,我們有了另一種選擇。網頁設計師與開發者可以不用重複自己(DRY,Don't Repeat Yourself),撰寫CSS也仍然可以充滿樂趣。
Sass 3.0版在2010年5月釋出,增添了與CSS相容的SCSS語法,並且搭配Compass的強大社群支援,從此邁向了主流道路。筆者在2013年底參加了CSSDevConf,開場Keynote的知名設計師Zoe Gillenwater更建議所有網頁設計師都應該開始學習Sass。會場上幾乎沒有人講“CSS前處理器”,只問:“你的專案用了Sass嗎?”時至今日,Chrome與Firefox的開發者工具都已經內建SCSS與LESS語法的支援。
同樣是在2010年,當時我仍然在自己創辦的設計公司Handlino服務。每次我遇到設計師朋友們,都會興奮地向他們介紹Sass/Compass。只要我稍稍展示變數與圖片精靈(第6章)功能,所有人都立刻想要改用Sass/Compass。但是當他們發現“天啊,這玩意得要會編寫程式”,熱情立刻就被澆熄了:“你別鬧了,我不可能學會的!”
那年年底的一個週末,我的同事tka心血來潮,撰寫出了一個跨平臺的Sass/Compass圖形介面工具,立刻受到大家的歡迎。我們決定將它命名為Compass.app(http://compass.kkbox.com/),將程式開源釋出,並且在網路上販賣預先編譯好的軟體。我們承諾捐出30%獲利到Compass指定的慈善機構(Compass是一個慈善軟體!),因而獲得了Compass作者Chris Eppstein(也是本書作者)的支援。截至去年,我們已經累積捐出超過15000美金。以一個開源軟體來說,這實在是個不可思議的成績。
Sass已經釋出了最新的3.3版,Compass也即將邁向1.0版這個重大的里程碑。很高興知道《 Sass與Compass實戰》即將出版的訊息,更感謝李鬆峰老師與譯者群投注的辛苦。相信你也能重拾撰寫CSS的樂趣。
薛良斌,Compass.app & Fire.app 開發者
2014.3.15
2011年,W3CTech(http://w3ctech.com/)薛良斌(布丁)的“Sass & Compass”主題分享
相關文章
- 虎年寄語
- Tree Compass
- 給部落格園的寄語
- SegmentFault 七週年丨寄語徵集
- 安卓 ROM 持續交付及小米雲測平臺實踐 - 劉斌安卓
- SCSS 和 SASS 區別CSS
- sass和less的區別
- SASS 和 SCSS 的區別CSS
- Go 語言實踐(一)Go
- Flutter多語言實踐Flutter
- PAT-B 1072 開學寄語【模擬】
- TensorFlow: 薛定諤的管道
- 使用 Nginx 編譯 Sass 和 ScssNginx編譯CSS
- CF1943C Tree Compass
- 優秀畢業生寄語:鹹魚炒白菜
- 優秀畢業生寄語:一顆金柚子
- 優秀畢業生寄語:Simp1er
- volatile的語義與實踐
- Go 語言 context 包實踐GoContext
- MySQL基礎語法實踐MySql
- ChatGPT初學者最佳實踐ChatGPT
- 6使用 loader 處理 CSS 和 SassCSS
- Vue 應用 Sass、Scss、Less 和 StylusVueCSS
- CoffeeScript和Sass提高Web開發效率Web
- 【畢業寄語】阻礙我們進步的真的是加班和沒時間嗎
- 優秀畢業生寄語:飛翔的貓咪
- css前處理器scss/sass語法以及使用CSS
- MRCP在美團語音互動中的實踐和應用
- Flex佈局語法與實踐Flex
- Go 語言 viper 庫上手實踐Go
- 多語言檢測工具實踐
- 薛定諤的《半條命3》
- GPT大語言模型Alpaca-lora本地化部署實踐【大語言模型實踐一】GPT模型
- Sass 的入門安裝和基本使用
- Xamarin Essentials教程使用指南針Compass
- Vue最佳實踐和實用技巧Vue
- Pulsar部署和實踐(一)
- 自然語言處理的最佳實踐自然語言處理
- GPT-SoVITS語音合成模型實踐GPT模型