2019年6月10日 星期一

【筆記】 IOS 人機界面Guideline


視覺設計需閱讀的篇章:



  1. iOS設備的各種屏幕尺寸

  1. 圖像大小與分辨率

iOS用於在屏幕的分辨率分別有@ 1x,@ 2x和@ 3x。
假設有一個100px×100px的標準分辨率(@ 1x)圖像。該圖像的@ 2x版本為200px×200px,@ 3x版本為300px×300px。


設計高分辨率時應注意:

  1. 使用8px-by-8px網格。
    網格保持線條清晰,確保內容在所有尺寸下盡可能清晰,需要較少的修飾和銳化。將圖像邊界捕捉到網格,以最小化縮小時可能出現的半像素和模糊細節。


  1. 使用適當的格式製作藝術作品。
    通常,對位圖/柵格圖稿使用去隔行PNG文件。PNG支持透明度,因為它是無損的,壓縮工件不會模糊重要細節或改變顏色。對於需要陰影,紋理和高光等效果的複雜藝術品來說,它是一個不錯的選擇。將JPEG用於照片。它的壓縮算法通常比無損格式產生更小的尺寸,並且在照片中更難辨別偽像。但是,照片般逼真的應用程序圖標在PNG中看起來效果最佳。將PDF用於需要高分辨率縮放的字形和其他平面矢量圖稿。


  1. 將8位調色板用於不需要完整24位顏色的PNG圖形。
    使用8位調色板可減小文件大小而不會降低圖像質量。此調色板不適用於照片。
  2. 優化JPEG文件以在大小和質量之間找到平衡。
    可以壓縮大多數JPEG文件,而不會導致生成的圖像明顯降級。即使少量壓縮也可以節省大量磁盤空間。嘗試對每個圖像進行壓縮設置,以找到產生可接受結果的最佳值。


  1. 為圖像和圖標提供替代文本標籤。
    替代文字標籤在屏幕上不可見,但它們讓VoiceOver可以直觀地描述屏幕上的內容,使視力障礙人士更容易導航。


Multitasking Size Classes:

在iPad上,當您的應用程序以多任務配置運行時,大小類也適用。


一般佈局注意事項

  1. 確保主要內容以其默認大小清除。
    除非他們選擇更改大小,否則人們不應該水平滾動來閱讀重要文本,或者縮放以查看主要圖像。


  1. 在整個應用中保持整體一致的外觀。
    通常,具有類似功能的元素應該看起來相似。


  1. 使用視覺重量和平衡來傳達重要性。
    大件物品吸引眼球,看起來比較小物品更重要。較大的物品也更容易點擊,這在應用程序用於分散注意力的環境時尤為重要,例如在廚房或健身房。通常,將主要項目放置在屏幕的上半部分中,並且在從左到右的讀取上下文中 - 靠近屏幕的左側。


  1. 使用對齊可以簡化掃描並與組織和層次結構進行通信。
    對齊使應用程序看起來整潔有序,幫助人們在滾動時集中註意力,並使查找信息變得更加容易。縮進和對齊還可以指示內容組如何相關。


  1. 如果可能,支持縱向和橫向。
    人們更喜歡在不同的方向使用應用程序,因此最好能夠滿足這種期望。


  1. 準備好進行文本大小的更改。
    人們期望大多數應用在設置中選擇不同的文字大小時進行響應。要適應某些文本大小的更改,您可能需要調整佈局。有關應用中文本使用情況的詳細信息,請參閱排版


  1. 為交互式元素提供充足的觸摸目標。
    嘗試為所有控件保持44pt x 44pt的最小可點擊區域。


  1. 在多個設備上預覽您的應用。
    您可以使用模擬器(Xcode附帶)來預覽您的應用程序並檢查裁剪和其他佈局問題。如果您的應用支持橫向模式,請確保您的佈局看起來很棒,無論設備是向左還是向右旋轉。全屏iPhone不支持倒置肖像模式。某些功能(如寬彩色圖像)最適合在實際設備上預覽。


  1. 在較大的設備上顯示文本時應用可讀性邊距。
    這些邊距使文本行足夠短,以確保舒適的閱讀體驗。


  1. 動畫

在網站中加入動畫會增加活潑度,但動畫不是有加就好,就像一面牆不是有顏色就叫漂亮。IOS  官方Guiildline 在動畫的項目中提到4點建議。


  1. 明智地使用動畫和動作效果。
    不要為了使用動畫而使用動畫。過度或無償的動畫可能會讓人感到脫節或分心,特別是在沒有提供身臨其境體驗的應用中。iOS使用運動效果(例如視差效果)在主屏幕和其他區域創建深度感。這些效果可以增加理解和享受,但過度使用它們會使應用程序感到迷失方向並且難以控制。

    動畫會吸引使用者目光與注意力,一個視覺畫面中最好只有一個物件在動作。兩個以上會令人分心,如果動畫是在要操作的按鈕或是連結上,反而會增加使用者判斷時間,甚至操作錯誤。
  2. 力求現實主義和信譽。
    人們傾向於接受藝術許可,但是當運動沒有意義或似乎違背物理定律時,他們會感到迷失方向。例如,如果某人通過從屏幕頂部向下滑動來顯示視圖,則他們應該能夠通過向後滑動來解除視圖。


這段翻譯成白話文的意思就是,創新是好的,但有些約定俗成的操作行為,還是必須貼近的使用者的習慣。


  1. 使用一致的動畫。
    熟悉,流暢的體驗讓用戶保持參與。他們習慣於iOS中使用的微妙動畫,例如平滑過渡,設備方向的流暢變化​​和基於物理的滾動。除非您正在創建沉浸式體驗,例如游戲,否則自定義動畫應與內置動畫相媲美。

    這與設計師在挑選顏色與繪製ICON時需要注意的細節相同,使用者是在IOS系統下進行操作,IOS內建了許多通用APP,所以IOS的使用者每天在使用手機的時候,已經默默地被訓練這些暗示性的操作行為(滑動手勢、快速鍵、動畫暗示...),在設計瀏覽網站與APP,如果使用的動畫與iOS中使用動畫是一致的,使用者就可以更快熟悉介面操作。


  1. 使動畫可選。
    在輔助功能首選項中啟用減少運動的選項時,您的應用應最小化或消除應用程序動畫。有關指導,請參閱Motion。

    這項在網頁上能否做到我並不了解,但如果是製作PP的話,這應該要注意,讓使用者可對此進行控制。


  1. 顏色

顏色傳遞活力,提供視覺連續性,傳達狀態信息,響應用戶操作提供反饋以及幫助人們將數據可視化。IOS提到了下列注意事項:


  1. 明智地使用顏色進行交流。
    當謹慎使用時,提高注意重要信息的顏色力量會增強。
    例如,當出於非關鍵原因在應用程序中的其他地方使用紅色時,警告人們關鍵問題的紅色三角形變得不那麼有效。

    這個例子就像是以前遇過的甲方,活動頁面上到處都要強調,強調的方法就是加大、加粗、變紅色,完稿之後設計師絕對堅決否認那是自己的作品啊XDDD。


  1. 在整個應用中使用補色。應用中的顏色應該很好地協同工作,而不是衝突或分散注意力。例如,如果粉彩對於應用程序的樣式至關重要,請使用一組協調的粉彩。


  1. 通常,選擇與您的應用徽標協調的有限調色板。微妙地使用顏色是傳達品牌的好方法。


  1. 考慮選擇色調顏色以指示整個應用程序的交互性。在Notes中,交互元素為黃色。在日曆中,交互式元素為紅色。如果您定義表示交互性的色調顏色,請確保其他顏色不與之競爭。


  1. 提供兩種版本的色調,以確保它在明暗模式下都很好看。當您使用系統顏色作為色調時,您可以自動支持高對比度。


  1. 避免對交互式和非交互式元素使用相同的顏色。如果交互式和非交互式元素具有相同的顏色,則人們很難知道在哪裡挖掘。


  1. 考慮藝術品和半透明度如何影響附近的顏色。藝術品的變化有時需要改變附近的顏色,以保持視覺連續性並防止界面元素變得過於強大或不足。例如,地圖在使用地圖模式時會顯示淺色方案,但在激活衛星模式時會切換為深色方案。放置在半透明元素後面或應用於半透明元素(如工具欄)時,顏色也會顯得不同。


  1. 在各種照明條件下測試應用程序的配色方案。根據房間的氛圍,時間,天氣等,室內和室外的照明都有很大差異。當您的應用在現實世界中使用時,您在計算機上看到的顏色看起來並不總是一樣。始終在多種光照條件下預覽您的應用,包括在晴天戶外,以查看顏色的顯示方式。如有必要,調整顏色以在大多數用例中提供最佳的觀看體驗。


  1. 考慮True Tone顯示如何影響顏色。True Tone顯示器使用環境光傳感器自動調整顯示器的白點,以適應當前環境的照明條件。主要關注閱讀,照片,視頻和遊戲的應用可以通過指定白點適應性樣式來增強或削弱此效果。有關開發人員指南,請參閱UIWhitePointAdaptivityStyle。


  1. 考慮如何在其他國家和文化中看到您對顏色的使用。例如,在某些文化中,紅色表示危險。在其他人看來,紅色具有積極的內涵。確保應用中的顏色發送相應的消息。

避免使用讓人們難以察覺應用內容的顏色。例如,色盲人可能無法區分某些顏色組合,而對比度不足會導致圖標和文本與背景混合併使內容難以閱讀。有關指導,請參閱顏色和對比度。

2019年6月2日 星期日

【筆記】icon 字體:Font Awesome,免費 / 付費版都有

Font Awesome 2018極受歡迎的開源ICON字體,進入網站就會看到各式各樣的扁平ICON,點綴在簡約的漸層畫布上,至2019/06站上的ICON字體共有5,099枚,其中可免費使用的有1,515枚。



很現實的,由於行動裝置介面空間有限,可比用寸土寸金來形容。以網頁或是APP來說,純裝飾的圖形在畫面上實在太過奢侈,為了在小小的空間裡,塞入更多的資訊,設計形態產生改變,小小的圖形開始代表著一個操作按鈕。


自從行動裝置問世之後,使用者接收訊息的方式,也漸漸從純文字轉向圖像閱讀。設定界面,以前只有文字項目,現在項目的前方則會增加小圖示,圖形+文字這樣的做法,讓文字閱讀與圖像閱讀的使用者,不但增加了美觀,更增加了可讀性。

2019年5月17日 星期五

【CSS】 粘性定位 position: sticky;

CSS 的定位屬性有下列幾種
  • position: static;
  • position: relative;
  • position: fixed;
  • position: absolute;
  • position: sticky;

fixed 很常被使用在 header、footer、右側滑動廣告
fixed 作為 header使用時,內容區塊往往要搭配 padding-top、 margin-top、 top,避面內容被刊頭遮擋住,用在 footer 時也會產生相同的問題。

2019年4月13日 星期六

【CSS】特殊符號:& 、+ ~ > ^

在CSS裡有一種用法叫做『選擇器』,選擇器的種類繁多

最古老又常用的連接設定
  1. :link
  2. :visited
  3. :active
  4. :hover

方便的計數設定
  1. :first-of-type
  2. :last-of-type
  3. :nth-child(n)


2019年4月1日 星期一

Wacom 數位筆無法按壓選取

今天更新驅動程式後,發現Wacom 數位筆無法按壓選取,這簡直是不斷逆毛摸,超令人爆青筋。查了許久發現要改設定

打開數位板程式設定:

  1. 選擇其他所有程式
  2. 選擇鏡射
  3. 下方使用Windows Ink ,取消勾選


2019年3月5日 星期二

【CSS】偽元素:not,使用過後保證愛上

在CSS中,:not(   )的意思就是,(  )內的東西不要套用到設定的屬性。
(  )內放置的範圍非常廣,以下介紹幾種使用方式:

  1. className
  2. 偽類  :hover
  3. 偽類  :last-child 
  4. 多個not合併使用
1. className
設定button的背景色,但是在  button class=“disabled 的時候不要套用。
button:not(.disabled){ background: #333 }


2018年10月17日 星期三

【SCSS】2.9用SCSS寫root(第一次就失敗)

Bootstrap的SCSS資料夾內,有一枚 _root.scss,這個檔案轉譯之後就像是CSS註解,可以把一些設定的基本規則寫在上面。

Bootstrap的 _root.scss 的寫的很簡單,只有顏色定義、跟斷點。
顏色的寫法很簡單,只用到 Variables(變數) + @each 迴圈
然後我就滿心歡喜寫下了這個

SCSS
:root {
// Custom variable values only support SassScript inside `#{}`.
@each $color, $value in $colors {
  --#{$color}: #{$value};
}


@each $color, $value in $theme-colors {
  --#{$color}: #{$value};
}

}


2018年10月1日 星期一

【SCSS】2.8 @extend (共用)

@extend翻譯成共用或是繼承,在瀏覽一些別人的學習心得時發現,有人認為 @extand 會讓CSS品質變差,所以不建議使用。


真正在執行專案的時候,我是不太使用@extend,雖然在SCSS 裡寫@extend會讓程式碼變短,看似很是方便,但解譯後的CSS不易閱讀,整體的CSS體積也會變大。如果小專案也許CSS微胖並沒有什麼影響,但是大專案對CSS的K數是很斤斤計較的(就像女人對自己的體重一樣,能少0.1Kg也是好的!!!)


我們用實際的語法來說明


語法範例SCSS
//設定小圖示
.miao-icon{ display: inline-block; width: 24px; height: 24px; vertical-align: middle; background: url(../Images/icon.png) no-repeat 80px 80px; background-size: 48px;}
.miao-icon_prev {
@extend .miao-icon;
 background-position: 0px 0px;
}
.miao-icon_next     { @extend .miao-icon; background-position: 0px -24px;}
.miao-icon_up       { @extend .miao-icon; background-position: 0px -48px;}

.miao-icon_down     { @extend .miao-icon; background-position: 0px -72px;}



編譯後CSS

.miao-icon, .miao-icon_prev, .miao-icon_next, .miao-icon_up, .miao-icon_down {
display: inline-block;
width: 24px;
height: 24px;
vertical-align: middle;
background: url(../Images/icon.png) no-repeat 80px 80px;
background-size: 48px;
}

.miao-icon_prev { background-position: 0px 0px;}
.miao-icon_next { background-position: 0px -24px;}
.miao-icon_up { background-position: 0px -48px;}
.miao-icon_down { background-position: 0px -72px;}



若是真的要使用的話,要有所限制,建議:

  1. 層次越扁平越好,最好是一層
  2. 單元性使用,不要跨單元


在原始CSS裡有個語法類似@extend,叫做[class*='miao-icon']用上述的例子,純CSS這樣寫也能達到一樣的效果

2018年9月14日 星期五

【SCSS】2.7 @Mixins(混合) + @include(擴充 / 繼承)

本來只想寫試寫Mixins,不過偷剪BootStrap的範例時,發現他是連同include寫在一起,我不會拆開,索性一起貼上試跑看看,誒...然後...他就轉譯成功了......


官方說法(然後我看完並不懂他再說什麼)
http://sass.bootcss.com/docs/sass-reference/#control_directives
Mixins允許您定義可以在整個樣式表中重複使用的樣式,而無需使用非語義類.float-left。Mixins還可以包含完整的CSS規則,以及Sass文檔中其他地方允許的任何其他規則。他們甚至可以採取一些參數 ,這些參數可以讓你用很少的mixin來製作各種各樣的風格。


看完程式碼後的理解:
Variables(變數) = 定義一個變數名,並決定這個變數名的值(可以是數字、單位、顏色...)
取用的時候直接寫 $變數名 
例如:

2018年9月2日 星期日

【SCSS】2.6 map 與 @each 迴圈

延續上述的例子,當你以為寫到這樣就很迷人,那就錯了。

.color-primary {color: $primary;}
.color-warning {color: $warning;}
.color-xxxxx01 {color:...
.color-xxxxx02 {color:...
.color-xxxxx03 {color:...
.color-xxxxx04 {color:...
.color-xxxxx05 {color:...


程式碼就跟迷你裙一樣越短越好,當色碼超過10個,整段看起來就會很恐怖。而且一直寫重複的名稱讓我覺得自己像個智障= =|||

2018年8月18日 星期六

【SCSS】2.5 Variables(變數)

用設計師的角度來看,變數的概念,類似PS裡的智慧型物件,可重複使用。


功能 用來儲存值,方便重複利用
表示方式 $自己取的變數名
資料型態 Numbers、Strings、Booleans、null 值(視為空值),甚至可以使用 Lists、Maps。
  1. 數字,含小數(有單位或無單位皆可)
  2. 字串,如 "String" , 'String' , String 3 種皆可
  3. 顏色,如 blue , #0a43f9 , rgba(255, 0, 0, 0.5) 等
  4. 布林值(Booleans): true , false
  5. 空值 null
  6. 串列,例如 $font-list: Helvetica, Arial, sans-serif; ,以空格或逗號分隔的一連串的值
  7. 鍵值映對(maps) ,例如: $map: (key1: value1, key2: value2, key3: value3);
  8. 函數參照(function references)

BootStrap將SCSS-Variables(變數),獨立出來成立一支_Variables.scss,這的確是非常聰明的做法,當任何一隻SCSS要取用Variables(變數)的時候,都只要填入變數名稱,即可帶入進行運算。


2018年8月6日 星期一

【SCSS】2.4 @for(迴圈)

迴圈就是重複的執行的意思。迴圈包迴圈是可以的,無線迴圈是不道德的。
在此懇求說話無線迴圈的人(例如我媽),求你行行好...改成有限迴圈,而且i < 3,口 以嗎?

這單純是為了寫範例而做的,真正在BootStrap裡的灰階,並不是這樣做的。下方範例是字體顏色+背景為rgba,  ($i)   也可以直接寫成  $i  , 不過工程師說,用()包起來是好習慣,那就醬


語法範例SCSS
//gray字體顏色+背景
@for   $i from 1 through 9 { //從 1 到 9 共執行 9 次。  
.color-gray#{$i}00 {
    color: rgba( 0,0,0,($i) /10 );
}

.bg-gray#{$i}00 {
  background-color: rgba( 0,0,0,($i) /10 );
}



2018年7月23日 星期一

2018年7月17日 星期二

2018年7月1日 星期日

【SCSS】2.1 資料夾與檔案命名

本來想依照BootStrap建立資料及與相關檔案,但是他的架構實在太龐大,不適合連注音都看不懂的幼幼班。媽媽說學習要按部就班,先學爬在學走!!所以先從小的架構開始寫起。




2018年6月20日 星期三

【SCSS】2.0 學習日誌


以下是一邊看著BootStrap(天書呀QAQ),一邊查看各種資源(包含活生生的工程師們),試圖轉碼出來的心路歷程。


寫學習日誌是因為深知自己是金魚腦,就算現在試成功了以後也還是會忘。


為了方便找資源的夥伴們快速左轉(掩面),說明一下目前自身能力



會的 不會的
  1. HTML熟
  2. CSS熟
  3. 具有RWD排版概念
除了左邊的,其他程式全都不會

2018年6月5日 星期二

【筆記】1.7 VS Code 外掛 Live Sass Compile Config

撰寫SCSS, Live Sass Compile Config 外掛是絕對必要的存在,
這也是我當初從眾多軟體中決定使用 VS Code 的主因,
在此簡述一下 Live Sass Compile Config 的優點以及設定

1. 自動偵錯
安裝之後,編寫SCSS Code的過程中,
 Live Sass Compile Config 會自動檢查程式碼是否正確,
如果編譯正確,在畫面下方出現綠色的『success』
如果編譯錯誤,則出現紅色的『error』



2018年6月2日 星期六

【筆記】1.6 VS code使用習慣設定-清除句尾空白

在coding的時候,寫著寫著就會變這樣



對於頁尾空白總覺得有點逆毛
這時候只要到VS code修改設定,操作方式如下
進入:檔案 > 喜好設定 > 設定



這時會進入這個畫面



在搜尋框打上 files.trimTrailingWhitespace,然後把選項打勾



從此以後存檔時就會自動清除句尾空白(舒心~~



PS:如果無法立即使用,試試關掉VS code後再重開。