Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Side by Side Diff: scss/_forms.scss

Issue 29365594: Issue 4633 - Default form styles (Closed)
Patch Set: Created Nov. 29, 2016, 4:29 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View unified diff | Download patch
OLDNEW
(Empty)
1 /*!
2 * This file is part of website-defaults
3 * Copyright (C) 2016 Eyeo GmbH
4 *
5 * website-defaults is free software: you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
9 *
10 * website-defaults is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with website-defaults. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19 /*******************************************************************************
20 * Forms
juliandoucette 2017/01/10 13:40:26 TODO: - move button styles to button.scss - remov
21 *******************************************************************************
22 * 1. Reset
23 * 2. Structure
24 * 3. Consistency
25 * 4. Fields
26 * 5. States
27 ******************************************************************************/
28
29 /* 1. Reset
30 ******************************************************************************/
31
32 /**
33 * 1. Change the font styles in all browsers (opinionated).
34 * 2. Remove the margin in Firefox and Safari.
saroyanm 2016/12/06 18:26:54 Detail: Why exactly in Firefox and Safari ? I thin
juliandoucette 2016/12/07 17:31:08 Acknowledged. This was taken from normalize.
juliandoucette 2017/01/10 13:40:27 will-do.
35 */
36
37 button,
38 input,
39 optgroup,
saroyanm 2016/12/06 18:26:54 Why do we apply this styles to the optgroup ? Ex.
juliandoucette 2016/12/07 17:31:09 Acknowledged. Don't know. This was taken from nor
40 select,
41 textarea
42 {
43 margin: 0; /* 2 */
saroyanm 2016/12/06 18:26:54 Detail: please specify units where possible.
saroyanm 2016/12/06 18:26:54 I don't think that we need to be that specific reg
juliandoucette 2016/12/07 17:31:08 Acknowledged. Will-do. Again, taken from normali
44 font-family: sans-serif; /* 1 */
45 font-size: 100%; /* 1 */
saroyanm 2016/12/06 18:26:54 Deatail: I think you want to specify 1em here ?
juliandoucette 2016/12/07 17:31:09 Acknowledged. Maybe. I'll investigate. I think no
juliandoucette 2017/01/10 13:40:27 Note: Will change this to em instead of %
46 line-height: inherit;
saroyanm 2016/12/06 18:26:53 I assume you want to setup this according to the c
juliandoucette 2016/12/07 17:31:09 Inherit is the default value. This is a reset styl
juliandoucette 2017/01/10 13:40:26 Acknowledged, will investigate, and determine if w
47 }
48
49 /**
50 * Make advanced text fields consistent and stylable on chrome, safari, and iOS
51 */
52
53 input[type="date"],
saroyanm 2016/12/06 18:26:54 This input types are not supported across most of
juliandoucette 2016/12/07 17:31:09 Acknowledged. - They are supported by HTML5 - The
juliandoucette 2017/01/10 13:40:27 See comment below.
54 input[type="time"],
55 input[type="datetime-local"],
56 input[type="month"]
57 {
58 /* stylelint-disable-next-line */
59 -webkit-appearance: listbox;
juliandoucette 2017/01/10 13:40:26 - will investigate if -webkit-appearance is necess
60 box-sizing: border-box;
61 }
62
63 /**
64 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
saroyanm 2016/12/06 18:26:53 Not really sure if I understand how this comment i
juliandoucette 2016/12/07 17:31:09 Apparently applying "-webkit-appearance: button" t
65 * controls in Android 4.
66 * 2. Correct the inability to style clickable types in iOS and Safari.
67 */
68
69 button,
70 html [type="button"], /* 1 */
saroyanm 2016/12/06 18:26:53 [type="button"] selector will be more consistent w
juliandoucette 2016/12/07 17:31:09 Acknowledged. See comment above.
71 [type="reset"],
72 [type="submit"]
73 {
74 /* stylelint-disable-next-line */
75 -webkit-appearance: button; /* 2 */
saroyanm 2016/12/06 18:26:53 I don't think why we need to use this non standard
juliandoucette 2016/12/07 17:31:09 Because webkit based mobile browsers apply default
76 }
77
78 /**
79 * Remove the inner border and padding in Firefox.
saroyanm 2016/12/06 18:26:54 I can't see if this have any effect on my side.
juliandoucette 2016/12/07 17:31:08 Acknowledged. Looks like this is not relevant to
80 */
81
82 button::-moz-focus-inner,
83 [type="button"]::-moz-focus-inner,
84 [type="reset"]::-moz-focus-inner,
85 [type="submit"]::-moz-focus-inner
86 {
87 padding: 0;
88 border-style: none;
89 }
90
91 /**
92 * Restore the focus styles unset by the previous rule.
saroyanm 2016/12/06 18:26:54 Again: why do we need this non standard reset ? Al
juliandoucette 2016/12/07 17:31:08 Acknowledged. See comment above.
93 */
94
95 button:-moz-focusring,
96 [type="button"]:-moz-focusring,
97 [type="reset"]:-moz-focusring,
98 [type="submit"]:-moz-focusring
99 {
100 outline: 1px dotted ButtonText;
101 }
102
103 /**
104 * 2. Remove the padding in IE 10-.
saroyanm 2016/12/06 18:26:53 I don't think that this style is specific for only
juliandoucette 2016/12/07 17:31:09 Acknowledged. Again, this comes from normalize. A
105 */
106
107 [type="checkbox"],
108 [type="radio"]
109 {
110 padding: 0; /* 2 */
111 }
112
113 /**
114 * 1. Correct the odd appearance in Chrome and Safari.
saroyanm 2016/12/06 18:26:55 What odd appearance is this fixing, I can't see an
juliandoucette 2016/12/07 17:31:09 Search input has border radius by default on chrom
115 * 2. Correct the outline style in Safari.
116 */
117
118 [type="search"]
119 {
120 /* stylelint-disable-next-line */
121 -webkit-appearance: textfield; /* 1 */
122 outline-offset: -2px; /* 2 */
123 }
124
125 /**
126 * Work around a Firefox/IE bug where the transparent `button` background
127 * results in a loss of the default `button` focus styles.
128 */
129
130 button:focus
131 {
132 outline: 1px dotted;
133 /* stylelint-disable-next-line */
134 outline: 5px auto -webkit-focus-ring-color;
saroyanm 2016/12/06 18:26:54 I don't think that we want to use a webkit specifi
juliandoucette 2016/12/07 17:31:08 Acknowledged. This is restoring the default behav
juliandoucette 2017/01/10 13:40:27 Agreed. Let's use a non-webkit color.
135 }
136
137 /**
138 * Add the correct display in IE 10-.
139 */
140
141 [hidden]
saroyanm 2016/12/06 18:26:53 Are we planing to use hidden attribute ? I can't s
juliandoucette 2016/12/07 17:31:08 It's common to use this attribute to hide custom f
142 {
143 display: none;
144 }
145
146 /* 2. Structure
147 ******************************************************************************/
148
149 fieldset {
saroyanm 2016/12/06 18:26:54 Detail: the opening braces should go to the next l
juliandoucette 2016/12/07 17:31:08 Acknowledged. (Sorry)
150 display: block;
151 /* undo browser default */
152 margin: 0em;
153 padding: 0em;
154 border: 0em;
155 }
156
157 legend {
158 display: block;
159 margin: 2em 0em 0em 0em;
160 /* undo browser default */
161 padding: 0em;
162 font-size: 1.25em;
163 font-weight: $bold-weight;
164 /* undo browser default */
165 line-height: inherit;
saroyanm 2016/12/06 18:26:53 deatail: As far as I remember we decided to specif
juliandoucette 2016/12/07 17:31:08 Acknowledged. The intention here was to unset bro
166 }
167
168 label {
169 display: block;
170 margin: 1em 0em 0.25em 0em;
171 }
172
173 /* 3. Consistency
174 ******************************************************************************* *********/
175
176 [type="text"],
177 [type="search"],
178 [type="tel"],
179 [type="url"],
180 [type="email"],
181 [type="password"],
182 [type="date"],
saroyanm 2016/12/06 18:26:54 Some of this input type, like date and time are no
juliandoucette 2016/12/07 17:31:08 Acknowledged. I got this list from the HTML5 spec
juliandoucette 2017/01/10 13:40:26 See comment above.
183 [type="time"],
184 [type="number"],
185 select,
186 textarea
187 {
188 width: 100%;
189 border: 1px solid $secondary;
190 background-color: $primary-light;
191 }
192
193 [type="text"],
194 [type="search"],
195 [type="tel"],
196 [type="url"],
197 [type="email"],
198 [type="password"],
199 [type="date"],
200 [type="time"],
201 [type="number"],
202 select
203 {
204 height: 1.75em;
205 padding: 0 0.25em;
206 }
207
208 /* 4. Fields
209 ******************************************************************************* *********/
210
211 textarea
212 {
213 /* Progressively disable horizontal resizing */
214 /* stylelint-disable-next-line no-unsupported-browser-features */
215 resize: vertical;
216 overflow: auto;
saroyanm 2016/12/06 18:26:53 Why we need to setup overflow to auto ?
juliandoucette 2016/12/07 17:31:08 Acknowledged. I don't know :/ . Will investigate.
217 }
218
219 select
220 {
221 /* stylelint-disable */
222 /* Undo chrome default border radius */
223 -webkit-appearance: none;
saroyanm 2016/12/06 18:26:54 The way we are designing select boxes are not reli
juliandoucette 2016/12/07 17:31:09 I styled select this way to specifically address t
224 -moz-appearance: none;
225 border-radius: 0;
226 /* Make the caret consistent across modern browsers */
227 background-image: url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2 000/svg' version='1.1' width='32' height='24' viewBox='0 0 32 24'><polygon point s='0,0 32,0 16,24' style='fill: rgb%28138, 138, 138%29'></polygon></svg>");
saroyanm 2016/12/06 18:26:54 I think we can use PNG and made a wider support.
juliandoucette 2016/12/07 17:31:09 SVG is smaller and supports highDPI. We cannot rep
juliandoucette 2017/01/10 13:40:27 - will double check double backgrounds - will doub
228 background-size: 9px 6px;
saroyanm 2016/12/06 18:26:54 I think we can use background shorthand property.
juliandoucette 2016/12/07 17:31:09 Maybe. This may affect browser support.
229 background-position: right 8px center;
230 background-repeat: no-repeat;
231 padding-right: 25px;
saroyanm 2016/12/06 18:26:54 I thought we awere planing to use EMs instead.
juliandoucette 2016/12/07 17:31:09 The padding-right is in px because the caret icon
232 /* stylelint-enable */
233 }
234
235 [dir="rtl"] select
236 {
237 padding-right: 25px;
saroyanm 2016/12/06 18:26:54 You already setup padding right above.
juliandoucette 2016/12/07 17:31:08 Acknowledged. Maybe I got this backwards :/
juliandoucette 2017/01/10 13:40:26 Verified. I got this backwards.
238 padding-left: 0.25em;
239 background-position: left 8px center;
240 }
241
242 /* stylelint-disable-next-line */
243 [type="checkbox"],
244 [type="radio"]
245 {
246 margin-right: 0.15em;
saroyanm 2016/12/06 18:26:53 What if the label will be before the checkbox ? E
juliandoucette 2016/12/07 17:31:08 Acknowledged. Good point.
247 }
248
249 [type="button"],
250 [type="reset"]
251 {
252 @extend .button;
saroyanm 2016/12/06 18:26:54 I'll suggest not to use @extend if there is no rea
juliandoucette 2016/12/07 17:31:09 Acknowledged.
juliandoucette 2017/01/10 13:40:26 We will move button styles to button.scss
253 }
254
255 [type="submit"]
256 {
257 @extend .button;
258 @extend .submit;
259 }
260
261 /* 5. States
262 ******************************************************************************* *********/
263
264 .invalid
265 {
266 color: $error;
267 }
268
269 .invalid input,
270 .invalid textarea,
271 .invalid select
272 {
273 border-color: $error;
274 }
275
276 .disabled
277 {
278 color: $secondary;
279 }
280
281 .disabled input,
saroyanm 2016/12/06 18:26:54 Why not to use disabled attribute ?
juliandoucette 2016/12/07 17:31:08 Because this class is intended to apply to the par
juliandoucette 2017/01/10 13:40:26 - Will use attribute here instead
282 .disabled textarea,
283 .disabled select
284 {
285 background-color: $secondary-light;
286 /* Progressively set disabled cursor */
287 /* stylelint-disable-next-line */
288 cursor: not-allowed;
289 }
OLDNEW

Powered by Google App Engine
This is Rietveld