fontcustom_canvas 0.1.0 → 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 4f3dc2a97fe4bbdb8ffcc9996a24ae717e95f991cb5c7f3058567c0abcee0edb
4
- data.tar.gz: 47657a628aeca0b39df15f7a150f013564bb9bf00fbc8f3b63115ad1b4cbd73f
3
+ metadata.gz: 58d2d40ad483730f7eac99b623b0b6a3df6651e56ed980dcb2819c4575bcf87e
4
+ data.tar.gz: e1ed441bebc9ff8c997f583e9232e83fa1e3fd00df80857c96aebfeeac3419ea
5
5
  SHA512:
6
- metadata.gz: 9f0b16fc1e1484370391108b8ba778b2cae9bcb0ea0db130f8454067686246feca358c6e6bf1db6bb06797859e19e67cdc7e6c3dff6440ed120b3887c8308884
7
- data.tar.gz: c0603ef80edbafe68c8b75f392698f34ecc67d54cc798a3a16ca9871f62b5b52e918403888a6fe0eb0b8edcdf6cb46c02531ab48d693487282d1c6a2999dc174
6
+ metadata.gz: 53a266ad92c8971f69dc89efc2b7f8caf4aa34fa5aad10161ff9fb6099aac04eb2b428c3db7fac7a1ece1d03e8126b6f30ddcfa7152ea975d697ddecf50b246e
7
+ data.tar.gz: 3551336d05125b9fb056e8613879e73df4a4aefdfb9b9f67475c399803e6d4d13893cf59336c0172e7c5d69fae99ff4873adbc8cbac87d3312e98358c117d0ef
data/README.md CHANGED
@@ -2,8 +2,6 @@
2
2
 
3
3
  Welcome to your new gem! In this directory, you'll find the files you need to be able to package up your Ruby library into a gem. Put your Ruby code in the file `lib/fontcustom_canvas`. To experiment with that code, run `bin/console` for an interactive prompt.
4
4
 
5
- TODO: Delete this and the text above, and describe your gem
6
-
7
5
  ## Installation
8
6
 
9
7
  Add this line to your application's Gemfile:
@@ -20,10 +18,15 @@ Or install it yourself as:
20
18
 
21
19
  $ gem install fontcustom_canvas
22
20
 
23
- ## Usage
24
21
 
25
- TODO: Write usage instructions here
22
+ After That compile assets of canvas:
23
+
24
+ $ bundle exec rails canvas:compile_assets
25
+
26
+ ## Usage
26
27
 
28
+ To add Font customization options in canvas-lms, and added it to Theme Editor.
29
+
27
30
  ## Development
28
31
 
29
32
  After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
Binary file
Binary file
@@ -1,6 +1,7 @@
1
1
  require_relative 'lib/fontcustom_canvas/version'
2
2
 
3
3
  Gem::Specification.new do |spec|
4
+ spec.add_dependency 'bootstrap', ['~> 4.5.3']
4
5
  spec.name = "fontcustom_canvas"
5
6
  spec.version = FontcustomCanvas::VERSION
6
7
  spec.authors = ["ahmed-abd-elhamid"]
@@ -11,18 +11,18 @@ module FontcustomCanvas
11
11
 
12
12
  files.each do |file|
13
13
  File.write("app/jsx/theme_editor/#{file}", (URI.parse("#{uri_content}/theme_editor/#{file}").open.read) )
14
- puts "app/jsx/theme_editor/#{file} --->> done"
14
+ # puts "app/jsx/theme_editor/#{file} --->> done"
15
15
  end
16
16
 
17
17
  File.write("app/stylesheets/base/_variables.scss", (URI.parse("#{uri_content}/_variables.scss").open.read) )
18
- puts "app/stylesheets/base/_variables.scss --->> done"
18
+ # puts "app/stylesheets/base/_variables.scss --->> done"
19
19
 
20
20
  File.write("app/stylesheets/components/_ic-typography.scss", (URI.parse("#{uri_content}/_ic-typography.scss").open.read) )
21
- puts "app/stylesheets/components/_ic-typography.scss --->> done"
21
+ # puts "app/stylesheets/components/_ic-typography.scss --->> done"
22
22
 
23
23
  File.write("app/stylesheets/brandable_variables.json", (URI.parse("#{uri_content}/brandable_variables.json").open.read) )
24
- puts "app/stylesheets/brandable_variables.json --->> done"
24
+ # puts "app/stylesheets/brandable_variables.json --->> done"
25
25
 
26
26
  File.write("lib/brandable_css.rb", (URI.parse("#{uri_content}/brandable_css.rb").open.read) )
27
- puts "lib/brandable_css.rb --->> done"
27
+ # puts "lib/brandable_css.rb --->> done"
28
28
  end
@@ -1,3 +1,3 @@
1
1
  module FontcustomCanvas
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.2"
3
3
  end
@@ -0,0 +1,629 @@
1
+ /*
2
+ * Copyright (C) 2012 - present Instructure, Inc.
3
+ *
4
+ * This file is part of Canvas.
5
+ *
6
+ * Canvas is free software: you can redistribute it and/or modify it under
7
+ * the terms of the GNU Affero General Public License as published by the Free
8
+ * Software Foundation, version 3 of the License.
9
+ *
10
+ * Canvas is distributed in the hope that it will be useful, but WITHOUT ANY
11
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
12
+ * A PARTICULAR PURPOSE. See the GNU Affero General Public License for more
13
+ * details.
14
+ *
15
+ * You should have received a copy of the GNU Affero General Public License along
16
+ * with this program. If not, see <http://www.gnu.org/licenses/>.
17
+ */
18
+
19
+ /// This is the beginning of fixing typography usage in Canvas. We originally were pulling in a bunch of
20
+ /// bootstrap styles, of which, we'd like to phase out in multiple iterations.
21
+ /// Below is the combination of overwrites and bootstrap styles that were originally in Canvas.
22
+ /// As we sift through fixing things to the way we need them, this file should get smaller and smaller. :)
23
+
24
+ /// Repeat - this is a work in progress, iterative approach to handing typography in Canvas.
25
+ /// There's a lot here we don't want, and a lot more we need to re-work, but not all in one go.
26
+
27
+
28
+ ///////==============
29
+ /// Global Settings
30
+ ///////==============
31
+ html {
32
+ font-size: 100%;
33
+ -webkit-text-size-adjust: 100%;
34
+ -ms-text-size-adjust: 100%;
35
+ font-family: $ic-font-family;
36
+ }
37
+
38
+ body {
39
+ @include fontSize($ic-font-size);
40
+ font-weight: $ic-font-weight;
41
+ font-family: $ic-font-family;
42
+ font-size: $ic-font-size;
43
+ line-height: $ic-line-height;
44
+ color: $ic-font-color-dark;
45
+ -webkit-font-smoothing: antialiased; // needed to help render the iconFont clearer
46
+ -moz-osx-font-smoothing: grayscale; // needed to help render the iconFont clearer
47
+ }
48
+
49
+ p {
50
+ margin: $ic-sp 0;
51
+ font-family: $ic-font-family;
52
+ }
53
+
54
+ ///////==============
55
+ /// Emphasis and Utility Settings
56
+ ///////==============
57
+
58
+ small {
59
+ font-size: 85%; // Ex: 14px base font * 85% = about 12px
60
+ }
61
+ strong {
62
+ font-weight: $ic-font-weight-bold;
63
+ }
64
+ em {
65
+ font-style: italic;
66
+ }
67
+ cite {
68
+ font-style: normal;
69
+ }
70
+ .lead {
71
+ margin-bottom: $ic-sp;
72
+ @include fontSize($ic-font-size);
73
+ font-weight: 200;
74
+ line-height: $ic-line-height * 1.5;
75
+ }
76
+ .muted {
77
+ @if $use_high_contrast { color: darken($ic-hint-text, 20%); }
78
+ @else { color: $ic-hint-text; }
79
+ }
80
+ .text-warning { color: $ic-color-alert; }
81
+ a.text-warning:hover { color: darken($ic-color-alert, 10%); }
82
+
83
+ .text-error { color: $ic-color-danger; }
84
+ a.text-error:hover { color: darken($ic-color-danger, 10%); }
85
+
86
+ .text-info { color: var(--ic-brand-primary); }
87
+ a.text-info:hover { color: var(--ic-brand-primary-darkened-10); }
88
+
89
+ .text-success { color: $ic-color-success; }
90
+ a.text-success:hover { color: darken($ic-color-success, 10%); }
91
+
92
+ ///////==============
93
+ /// Heading Settings
94
+ ///////==============
95
+
96
+ h1, h2, h3, h4, h5, h6 {
97
+ margin: $ic-sp/2 0;
98
+ font-family: $ic-font-family;
99
+ font-weight: $ic-font-weight-bold;
100
+ line-height: $ic-line-height;
101
+ text-rendering: optimizelegibility; // Fix the character spacing for headings
102
+ small {
103
+ font-weight: $ic-font-weight;
104
+ line-height: $ic-line-height/0.5;
105
+ color: $ic-font-color--subdued;
106
+ }
107
+ }
108
+
109
+ h1 { font-size: $ic-font-size--xxlarge; } // ~38px
110
+ h2 { font-size: $ic-font-size--xlarge; } // ~32px
111
+ h3 { font-size: $ic-font-size--large; } // ~24px
112
+ h4 { font-size: $ic-font-size--medium; } // ~18px
113
+ h5 { font-size: $ic-font-size; }
114
+ h6 { font-size: $ic-font-size--xsmall; } // ~12px
115
+
116
+ h1 small { font-size: $ic-font-size--large; } // ~24px
117
+ h2 small { font-size: $ic-font-size--medium; } // ~18px
118
+ h3 small { font-size: $ic-font-size; }
119
+ h4 small { font-size: $ic-font-size; }
120
+
121
+ // now tweak them all a bit to be less shouty
122
+
123
+ h1, h2, h3, h4, h5, h6, .h1, .h2, .h3, .h4, .h5, .h6 {
124
+ font-weight: $ic-font-weight;
125
+ }
126
+ h1, h2, .h1, .h2 {
127
+ font-size: 1.8em;
128
+ line-height: $ic-line-height;
129
+ }
130
+ h3, .h3 {
131
+ font-size: 1.5em;
132
+ }
133
+
134
+ .page-header {
135
+ padding-bottom: ($ic-sp / 2);
136
+ margin: 20px 0 30px;
137
+ border-bottom: 1px solid $ic-border-color;
138
+ }
139
+
140
+ ///////==============
141
+ /// Links
142
+ ///////==============
143
+
144
+ a {
145
+ color: var(--ic-link-color);
146
+ &:focus, &:hover {
147
+ color: var(--ic-link-color-darkened-10);
148
+ }
149
+
150
+ @if $use_high_contrast {
151
+ text-decoration: underline;
152
+ &:focus, &:hover { text-decoration: none; }
153
+ @include ic-focus-base;
154
+ &:focus { @include ic-focus-variant; }
155
+ }
156
+
157
+ @else {
158
+ text-decoration: none;
159
+ &:focus, &:hover { text-decoration: underline; }
160
+ }
161
+
162
+ }
163
+ ////////=============
164
+ /// Underline All Links Feature Flag
165
+ ////////=============
166
+ .Underline-All-Links__enabled {
167
+ a:not(.Button, .btn, .ui-button, .ui-tabs-anchor) {
168
+ text-decoration: underline;
169
+ &:focus, &:hover { text-decoration: none; }
170
+
171
+ &:not([data-cid*="Button"]) { // inst-UI Button component
172
+ @include ic-focus-base;
173
+ &:focus { @include ic-focus-variant($color: var(--ic-link-color)); }
174
+ }
175
+ }
176
+ }
177
+
178
+ // make links in .alert be same color as alert text but bold
179
+ .alert a {
180
+ font-weight: $ic-font-weight-bold;
181
+ color: inherit;
182
+ }
183
+
184
+ ///////==============
185
+ /// List Settings
186
+ ///////==============
187
+
188
+ // Unordered and Ordered lists
189
+ ul, ol {
190
+ padding: 0;
191
+ margin: direction-sides(0 0 6px 25px);
192
+ }
193
+ ul ul,
194
+ ul ol,
195
+ ol ol,
196
+ ol ul {
197
+ margin-bottom: 0;
198
+ }
199
+ ul.unstyled,
200
+ ol.unstyled {
201
+ margin-#{direction(left)}: 0;
202
+ list-style: none;
203
+ }
204
+
205
+ // Description Lists
206
+ dl {
207
+ margin-bottom: 20px;
208
+ }
209
+ dt,
210
+ dd {
211
+ line-height: $ic-line-height;
212
+ }
213
+ dt {
214
+ font-weight: $ic-font-weight-bold;
215
+ }
216
+ dd {
217
+ margin-#{direction(left)}: 10px;
218
+ }
219
+ // Horizontal layout (like forms)
220
+ .dl-horizontal {
221
+ @include clearfix(); // Ensure dl clears floats if empty dd elements present
222
+ dt {
223
+ float: direction(left);
224
+ width: $horizontalComponentOffset - 20;
225
+ clear: direction(left);
226
+ text-align: direction(right);
227
+ overflow: hidden;
228
+ text-overflow: ellipsis;
229
+ white-space: nowrap;
230
+ }
231
+ dd {
232
+ margin-#{direction(left)}: $horizontalComponentOffset;
233
+ }
234
+ }
235
+
236
+ ///////==============
237
+ /// Prevents sub and sup affecting line-height in all browsers
238
+ ///////==============
239
+
240
+ sub,
241
+ sup {
242
+ position: relative;
243
+ font-size: 75%;
244
+ line-height: 0;
245
+ vertical-align: baseline;
246
+ }
247
+ sup {
248
+ top: -0.5em;
249
+ }
250
+ sub {
251
+ bottom: -0.25em;
252
+ }
253
+
254
+ ///////==============
255
+ /// Form Settings
256
+ ///////==============
257
+
258
+ // have to make labels inline-block by default,
259
+ // boostrap makes them all block but we have a ton of
260
+ // existing forms that count on them being inline.
261
+ label { display: inline-block; }
262
+
263
+ // because sometimes an input-mini is just too big
264
+ .input-micro { width: 30px; }
265
+
266
+ // if you are making a bootstrap style form and need to get your labels to look right (be block),
267
+ // add the class .bootstrap-form to the <form>. this is the only need for .bootstrap-form, you
268
+ // dont need to add the .bootstrap-form class if you already have the .form-horizontal class.
269
+ .form-horizontal label, .bootstrap-form label { display: block;}
270
+
271
+ // make labels in paragraphs the same size as regular text (as opposed to slightly larger)
272
+ p label {
273
+ font-size: inherit;
274
+ }
275
+
276
+ //remove default bottom margin on a bootstrap form
277
+ .bootstrap-form.no-margin {
278
+ margin-bottom: 0;
279
+ }
280
+
281
+ //get rid of bottom margin on any element (needed mostly for text inputs)
282
+ .no-margin-bottom {
283
+ margin-bottom: 0 !important;
284
+ }
285
+
286
+ //bootstrap makes all <select>s a certain width. provide a class to enable one to be auto width
287
+ select.un-bootrstrapify {
288
+ width: auto;
289
+ border-radius: 0;
290
+ height: auto;
291
+ }
292
+
293
+ .form-actions {
294
+ text-align: direction(right);
295
+ padding: 10px 10px 11px;
296
+
297
+ // when .form-actions is in a modal box, make it look different per Kyle mockup
298
+ .ui-dialog-content & {
299
+ margin-bottom: 0;
300
+ box-shadow: inset 0 1px 0 #fff;
301
+ }
302
+
303
+ // when you want your non-modal .form-actions footer to not have any whitespace around it
304
+ &.flush {
305
+ margin-bottom: -1em;
306
+ margin-#{direction(left)}: -1em;
307
+ margin-#{direction(right)}: -1em;
308
+ }
309
+ }
310
+
311
+ // for checkboxes not wrapped in a label.checkbox, make them look decent,
312
+ // should remove this eventually.
313
+ input[type=checkbox] + label,
314
+ input[type=radio] + label {
315
+ vertical-align: -4px;
316
+ }
317
+
318
+ // align inline form buttons to prevent staggering
319
+ .form-inline {
320
+ input[type=checkbox] + label,
321
+ input[type=radio] + label {
322
+ vertical-align: middle;
323
+ }
324
+ }
325
+
326
+ ///////==============
327
+ /// Table Settings
328
+ ///////==============
329
+
330
+ // modify the default bootstrap .table class to have the thead look like our .toolbars
331
+ .table > thead {
332
+ background: #e4e9ed;
333
+ }
334
+ .table-vertically-center {
335
+ th, td {
336
+ vertical-align: middle;
337
+ }
338
+ }
339
+ .table .center {
340
+ text-align: center;
341
+ }
342
+ .table-striped {
343
+ border: 1px solid $ic-border-color;
344
+ > thead {
345
+ border: 1px solid $ic-border-color;
346
+ }
347
+ > tbody > tr {
348
+ td {
349
+ background: #fff; // so we can hide focusable stuff via z-index
350
+ }
351
+ &:first-child > td {
352
+ border-top: 0;
353
+ }
354
+ }
355
+ }
356
+ .table-hover tbody {
357
+ tr:hover, tr.table-hover-row {
358
+ td, th {
359
+ background: $ic-color-neutral;
360
+ }
361
+ }
362
+ }
363
+
364
+ ///////==============
365
+ /// Misc Type Settings
366
+ ///////==============
367
+
368
+ // gets rid of ugly border
369
+ iframe#tool_content {
370
+ border: none;
371
+ }
372
+
373
+ // "ui.dialog you are so dumb. you are really dumb, for real"
374
+ // ui.dialog cancels input events for any positioned element w/ a lower
375
+ // z-index, even if the element is inside the dialog (in which case the
376
+ // z-index is not actually lower. so dumb)
377
+ .ui-dialog {
378
+ .input-append, .input-prepend {
379
+ input, select, .uneditable-input {
380
+ &:focus {
381
+ z-index: 1001;
382
+ }
383
+ }
384
+ }
385
+ }
386
+
387
+ // fixes bug in Cal1 where not-allowed cursor appears over checkboxes set to readonly
388
+ .calendar_links input[readonly] { cursor: auto; }
389
+
390
+ blockquote p {
391
+ font-size: inherit;
392
+ }
393
+
394
+ .progress-small {
395
+ height: 10px;
396
+ margin: 5px 0;
397
+ }
398
+
399
+ .popover {
400
+ z-index: 10;
401
+ }
402
+
403
+ // Horizontal rules
404
+ hr {
405
+ margin: 20px 0;
406
+ border: 0;
407
+ border-top: 1px solid $ic-border-color;
408
+ border-bottom: none;
409
+ }
410
+
411
+ // Abbreviations and acronyms
412
+ abbr[title],
413
+ // Added data-* attribute to help out our tooltip plugin, per https://github.com/twitter/bootstrap/issues/5257
414
+ abbr[data-original-title] {
415
+ cursor: help;
416
+ border-bottom: 1px dotted $ic-border-color;
417
+ }
418
+ abbr.initialism {
419
+ font-size: 90%;
420
+ text-transform: uppercase;
421
+ }
422
+
423
+ // Blockquotes
424
+ blockquote {
425
+ padding: direction-sides(0 0 0 15px);
426
+ margin: 0 0 20px;
427
+ border-#{direction(left)}: 5px solid $ic-border-color;
428
+ p {
429
+ margin-bottom: 0;
430
+ @include fontSize(16px);
431
+ font-weight: 300;
432
+ line-height: 25px;
433
+ }
434
+ small {
435
+ display: block;
436
+ line-height: $ic-line-height;
437
+ color: $ic-font-color--subdued;
438
+ &:before {
439
+ content: '\2014 \00A0';
440
+ }
441
+ }
442
+
443
+ // Float right with text-align: right
444
+ &.pull-right {
445
+ float: direction(right);
446
+ padding-#{direction(right)}: 15px;
447
+ padding-#{direction(left)}: 0;
448
+ border-#{direction(right)}: 5px solid $ic-border-color;
449
+ border-#{direction(left)}: 0;
450
+ p,
451
+ small {
452
+ text-align: direction(right);
453
+ }
454
+ small {
455
+ &:before {
456
+ content: '';
457
+ }
458
+ &:after {
459
+ content: '\00A0 \2014';
460
+ }
461
+ }
462
+ }
463
+ }
464
+
465
+ // Quotes
466
+ q:before,
467
+ q:after,
468
+ blockquote:before,
469
+ blockquote:after {
470
+ content: "";
471
+ }
472
+
473
+ // Addresses
474
+ address {
475
+ display: block;
476
+ margin-bottom: 20px;
477
+ font-style: normal;
478
+ line-height: $ic-line-height;
479
+ }
480
+
481
+ ///////==============
482
+ /// Popover Settings
483
+ ///////==============
484
+
485
+ .ui-widget.ui-tooltip {
486
+ word-wrap: break-word;
487
+ }
488
+
489
+ .ui-widget.ui-tooltip.popover {
490
+ padding: 1px;
491
+ font-size: 14px;
492
+ max-width: 236px;
493
+ width: 236px;
494
+ color: $gray;
495
+ text-align: direction(left);
496
+ text-decoration: none;
497
+ background-color: $popoverBackground;
498
+ opacity: 1;
499
+ border: 1px solid #ccc;
500
+ border: 1px solid rgba(0,0,0,.2);
501
+ border-radius: 6px;
502
+ box-shadow: 0 5px 10px rgba(0,0,0,.2);
503
+ }
504
+
505
+ .ui-widget.ui-tooltip.popover-padded {
506
+ padding: 9px 14px;
507
+ }
508
+
509
+ $popoverArrowDistanceFromCorner: $popoverArrowOuterWidth;
510
+ .ui-tooltip.popover {
511
+ &:before, &:after {
512
+ border-color: transparent transparent $popoverArrowOuterColor transparent;
513
+ position: absolute;
514
+ border-style:solid;
515
+ border-width: $popoverArrowOuterWidth;
516
+ width:0;
517
+ height:0;
518
+ content: "";
519
+ top: -$popoverArrowOuterWidth * 2;
520
+ #{direction(left)}: $popoverArrowDistanceFromCorner;
521
+ }
522
+ &:after {
523
+ border-bottom-color: $popoverTitleBackground;
524
+ border-width: $popoverArrowWidth;
525
+ top: -$popoverArrowWidth * 2;
526
+ #{direction(left)}: $popoverArrowDistanceFromCorner + 1;
527
+ }
528
+ &.right:before {
529
+ #{direction(left)}: auto;
530
+ #{direction(right)}: $popoverArrowDistanceFromCorner;
531
+ }
532
+ &.right:after {
533
+ #{direction(left)}: auto;
534
+ #{direction(right)}: $popoverArrowDistanceFromCorner + 1;
535
+ }
536
+ &.bottom:before {
537
+ border-color: $popoverArrowOuterColor transparent transparent transparent;
538
+ top: auto;
539
+ bottom: -$popoverArrowOuterWidth * 2;
540
+ }
541
+ &.bottom:after {
542
+ border-color: $popoverArrowColor transparent transparent transparent;
543
+ top: auto;
544
+ bottom: -$popoverArrowWidth * 2;
545
+ }
546
+ &.center:before {
547
+ #{direction(left)}: 50%;
548
+ margin-#{direction(left)}: -$popoverArrowOuterWidth;
549
+ #{direction(right)}: auto;
550
+ }
551
+ &.center:after {
552
+ #{direction(left)}: 50%;
553
+ margin-#{direction(left)}: -$popoverArrowWidth;
554
+ #{direction(right)}: auto;
555
+ }
556
+ &.middle:before {
557
+ top: 50%;
558
+ margin-top: -$popoverArrowOuterWidth;
559
+ bottom: auto;
560
+ }
561
+ &.middle:after {
562
+ top: 50%;
563
+ margin-top: -$popoverArrowWidth;
564
+ bottom: auto;
565
+ }
566
+ &.horizontal:before {
567
+ top: 50%;
568
+ margin-top: -$popoverArrowOuterWidth;
569
+ bottom: auto;
570
+ #{direction(left)}: -$popoverArrowOuterWidth * 2;
571
+ #{direction(right)}: auto;
572
+ border-color: transparent $popoverArrowOuterColor transparent transparent;
573
+ }
574
+ &.horizontal:after {
575
+ top: 50%;
576
+ margin-top: -$popoverArrowWidth;
577
+ bottom: auto;
578
+ #{direction(left)}: -$popoverArrowWidth * 2;
579
+ #{direction(right)}: auto;
580
+ border-color: transparent $popoverArrowColor transparent transparent;
581
+ }
582
+ &.right.horizontal:before {
583
+ #{direction(left)}: auto;
584
+ #{direction(right)}: -$popoverArrowOuterWidth * 2;
585
+ border-color: transparent transparent transparent $popoverArrowOuterColor;
586
+ }
587
+ &.right.horizontal:after {
588
+ #{direction(left)}: auto;
589
+ #{direction(right)}: -$popoverArrowWidth * 2;
590
+ border-color: transparent transparent transparent $popoverArrowColor;
591
+ }
592
+ &.bottom.horizontal:before {
593
+ top: auto;
594
+ bottom: $popoverArrowDistanceFromCorner;
595
+ }
596
+ &.bottom.horizontal:after {
597
+ top: auto;
598
+ bottom: $popoverArrowDistanceFromCorner + 1;
599
+ }
600
+ &.top.horizontal:before {
601
+ margin-top: 0;
602
+ top: $popoverArrowDistanceFromCorner;
603
+ }
604
+ &.top.horizontal:after {
605
+ margin-top: 0;
606
+ top: $popoverArrowDistanceFromCorner + 1;
607
+ }
608
+ &.content-top.horizontal:before {
609
+ margin-top: 0;
610
+ top: 35px;
611
+ }
612
+ &.content-top.horizontal:after {
613
+ margin-top: 0;
614
+ top: 36px;
615
+ }
616
+ }
617
+
618
+ .dotted-separator {
619
+ border-bottom: 1px dotted #aaa;
620
+ }
621
+
622
+ @keyframes highlight-shadow-fade {
623
+ from {
624
+ box-shadow: 0 0 8px rgba(82,168,236,1);
625
+ }
626
+ to {
627
+ box-shadow: none;
628
+ }
629
+ }