fontcustom_canvas 0.1.0 → 0.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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
+ }