active_admin_theme 3.1.0 → 3.1.1

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: d1993fdd8d2c135f02b1dfe4cd689c4422c3ff1b8b3b17d5b1365c8d5001a188
4
- data.tar.gz: 4e5fc48944ad78ad1684b7631537c59efc2c1b8973d10b867c7c6ca330c3e935
3
+ metadata.gz: 9acbb41d69f18ef3ba70a6b4da01ab1a85328e033f7479db96196205908b769a
4
+ data.tar.gz: 6bb46419bd8a22379b18f25911e0a6265f362cee313b5b0ec6ea8c1e6c66e900
5
5
  SHA512:
6
- metadata.gz: 9cdc504b3d55ec896fbfb0db1667b07d411be5b90b4ec6531731728d0152f4bda13ae645b3afd3f95c8429c820c9bc49bc3dc12cfafe40913e89cebe6b1c0e4d
7
- data.tar.gz: 4f9c30bb187b18ed8f7d9d180b7d50ed03e3150b3ecdcdd3470d6318609118e5189781a952975ed261f68b18ed587dcb985380c78e8162b6af83cfe65bbd6b66
6
+ metadata.gz: 4111c99001eeb83c4e40ae480e30f4e04e40b91385308dc1fba03e55a9f1c2eec848543de51c0cfe716a0780a3c5d9cfa70aa9c379b85f18b24298755b252276
7
+ data.tar.gz: 2637d37a333a34362e022f2e97090384150fc2d38de4131c3b6b322e999f375ab82dd0fdeb9a671f84b2870c77c6e18fb2e683fc75db8b59fa7bf4c804818359
data/README.md CHANGED
@@ -35,7 +35,7 @@ Or add manually to `package.json`:
35
35
 
36
36
  ```
37
37
  "dependencies": {
38
- "@activeadmin-plugins/active_admin_theme": "^3.1.0"
38
+ "@activeadmin-plugins/active_admin_theme": "^3.1.1"
39
39
  }
40
40
  ```
41
41
  and execute:
@@ -273,7 +273,7 @@ Three things changed shape and are worth knowing if you already set variables:
273
273
  | `$skinTabInactiveColor` / `$skinTabInactiveColorDark` | `#f7f9fb` / `#161a1e` | inactive tab fill |
274
274
  | `$skinActiveTabTextColor` / `$skinActiveTabTextColorDark` | `$skinMainSecondColor` / `#7cc0ec` | selected tab label |
275
275
  | `$skinInactiveTabTextColor` / `$skinInactiveTabTextColorDark` | `#5e6469` / `#b0b8c2` | inactive tab label |
276
- | `$skinTableHeaderTextColor` / `$skinTableHeaderTextColorDark` | `$skinTextColor` / `#dde2e8` | index-table column header text; the body text colour, so headings read as strongly as the rows |
276
+ | `$skinTableHeaderTextColor` / `$skinTableHeaderTextColorDark` | `$skinTextColor` / `$skinTextColorDark` | index-table column header text; the body text colour, so headings read as strongly as the rows |
277
277
  | `$skinStatusTagTextColor` | `#ffffff` | label inside a filled status tag; `empty` / `unknown` / `none` have no fill and keep `$skinTextMutedColor` |
278
278
  | `$skinStatusTagNeutralColor` | `#707681` | unclassified tags: `No`, protocol tags |
279
279
  | `$skinStatusTagOkColor` | `#5e7e63` | `ok` `published` `complete` `completed` `green` `yes` |
@@ -130,7 +130,7 @@ $skinInactiveTabTextColor: #5e6469!default;
130
130
  $skinInactiveTabTextColorDark: #b0b8c2!default;
131
131
  // Index-table column header text, one colour for sortable and plain headers.
132
132
  $skinTableHeaderTextColor: $skinTextColor!default;
133
- $skinTableHeaderTextColorDark: #dde2e8!default;
133
+ $skinTableHeaderTextColorDark: $skinTextColorDark!default;
134
134
 
135
135
  // Status tags. The label is the same on every filled tag in both modes. The
136
136
  // fills below are dark enough to carry a white one: every one of the five is
@@ -233,9 +233,18 @@ html[data-theme="dark"] { @include aa-dark-palette; }
233
233
  html[data-theme="dark"] { @content; }
234
234
  }
235
235
 
236
- // Иконки переключателя тем. Инлайном, потому что гем не возит картинок, и
237
- // маской, а не цветным SVG: маска красится currentColor и сама идёт за
238
- // $skinMenuTextColor. Половинка круга — auto, солнце — light, месяц — dark.
236
+ // Sort markers. Three shapes rather than one at two opacities: ActiveAdmin's
237
+ // sprite draws a double arrow for sortable-but-unsorted, and reusing the
238
+ // descending triangle for it leaves the two states indistinguishable on a
239
+ // freshly loaded index. Masked, like the theme switch icons, so they take
240
+ // currentColor and follow the heading into dark mode.
241
+ $sort-icon-none: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 12'%3E%3Cpath d='M4.5 0 9 5H0z'/%3E%3Cpath d='M4.5 12 0 7h9z'/%3E%3C/svg%3E")!default;
242
+ $sort-icon-asc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 12'%3E%3Cpath d='M4.5 2 9 8H0z'/%3E%3C/svg%3E")!default;
243
+ $sort-icon-desc: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 9 12'%3E%3Cpath d='M4.5 10 0 4h9z'/%3E%3C/svg%3E")!default;
244
+
245
+ // Theme switch icons. Inline, because the gem ships no image files, and as a
246
+ // mask rather than a coloured SVG: a mask takes currentColor and so follows
247
+ // $skinMenuTextColor on its own. Half circle = auto, sun = light, moon = dark.
239
248
  $theme-icon-auto: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='6.6' fill='none' stroke='black' stroke-width='1.4'/%3E%3Cpath d='M8 2.6a5.4 5.4 0 0 1 0 10.8z'/%3E%3C/svg%3E")!default;
240
249
  $theme-icon-light: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.4' stroke-linecap='round'%3E%3Ccircle cx='8' cy='8' r='3.1'/%3E%3Cpath d='M8 .9v1.8M8 13.3v1.8M.9 8h1.8M13.3 8h1.8M2.9 2.9l1.3 1.3M11.8 11.8l1.3 1.3M13.1 2.9l-1.3 1.3M4.2 11.8l-1.3 1.3'/%3E%3C/svg%3E")!default;
241
250
  $theme-icon-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M13.4 9.6A5.9 5.9 0 0 1 6.4 2.6a5.9 5.9 0 1 0 7 7z'/%3E%3C/svg%3E")!default;
@@ -337,11 +346,11 @@ $theme-icon-dark: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/s
337
346
  @error "$#{$name} must be a color or a CSS custom property (e.g. var(--aa-page-bg)), got `#{$value}`.";
338
347
  }
339
348
  }
340
- // Радиус внутреннего угла ячейки — на 1px меньше внешнего, чтобы не торчал
341
- // из-под рамки таблицы. Вычитать px напрямую нельзя: $skinBorderRadius задаёт
342
- // проект, и 0.25rem роняет всю компиляцию с «Incompatible units». calc()
343
- // откладывает вычитание до браузера, а безразмерный 0 обрабатываем отдельно —
344
- // calc(0 - 1px) невалиден.
349
+ // A cell's inner corner is 1px tighter than the outer one, so it does not
350
+ // show from under the table border. Subtracting px directly will not do: the
351
+ // radius is a project's to set, and 0.25rem fails the whole compile with
352
+ // "Incompatible units". calc() defers the subtraction to the browser, and a
353
+ // unitless 0 is handled separately because calc(0 - 1px) is invalid.
345
354
  @function inner-radius($radius) {
346
355
  @if unitless($radius) { @return 0; }
347
356
  @return calc(#{$radius} - 1px);
@@ -905,27 +914,27 @@ body.active_admin {
905
914
  // link keeps its full width so the whole cell stays clickable, and the
906
915
  // marker takes currentColor — the stock sprite is a fixed grey PNG that
907
916
  // cannot follow the text into dark mode.
908
- // `a[href*="order="]`, not every anchor in the header: an application can
909
- // put its own link in there — yeti-web adds a persistent-sort toggle — and
910
- // it would otherwise get a sort marker of its own. ActiveAdmin's heading
911
- // link always carries the order parameter.
912
- th.sortable > a[href*="order="] {
917
+ // The sprite goes from every anchor in a sortable heading, because
918
+ // ActiveAdmin sets it on every one — an application link in there would
919
+ // otherwise keep the low-res PNG and the 13px indent it needs.
920
+ th.sortable a {
913
921
  padding-left: 0;
914
922
  background-image: none;
923
+ }
924
+ // The marker, though, only on ActiveAdmin's own heading link, which always
925
+ // carries the order parameter: an application's link is its own business.
926
+ th.sortable > a[href*="order="] {
915
927
 
916
928
  &:after {
917
929
  content: "";
918
930
  display: inline-block;
931
+ width: 9px;
932
+ height: 12px;
919
933
  margin-left: 6px;
920
934
  vertical-align: middle;
921
- // The unused side has no width rather than a transparent one, so the
922
- // box is exactly as tall as the triangle in it. Keeping all four sides
923
- // and nudging with a margin instead puts the two states at different
924
- // heights, because `vertical-align: middle` centres the box and the
925
- // visible half then sits off-centre within it.
926
- border: 4px solid transparent;
927
- border-bottom-width: 0;
928
- border-top-color: currentColor;
935
+ background-color: currentColor;
936
+ -webkit-mask: #{$sort-icon-none} center / contain no-repeat;
937
+ mask: #{$sort-icon-none} center / contain no-repeat;
929
938
  // 0.6, not lower: the marker is the only thing separating a sortable
930
939
  // heading from a plain one, so WCAG 1.4.11 asks 3:1 of it. Against the
931
940
  // header fill it gives 3.40 light and 4.22 dark; at 0.4 it was 2.13
@@ -934,13 +943,15 @@ body.active_admin {
934
943
  }
935
944
  }
936
945
  th.sorted-asc > a[href*="order="]:after {
937
- border-top-width: 0;
938
- border-bottom-width: 4px;
939
- border-top-color: transparent;
940
- border-bottom-color: currentColor;
946
+ -webkit-mask-image: $sort-icon-asc;
947
+ mask-image: $sort-icon-asc;
948
+ opacity: 1;
949
+ }
950
+ th.sorted-desc > a[href*="order="]:after {
951
+ -webkit-mask-image: $sort-icon-desc;
952
+ mask-image: $sort-icon-desc;
941
953
  opacity: 1;
942
954
  }
943
- th.sorted-desc > a[href*="order="]:after { opacity: 1; }
944
955
  // Right edge = a single 1px line on the last-column cells (header th, body
945
956
  // td, footer cells) coloured like the table border, since the table itself
946
957
  // no longer draws a right border.
@@ -1,3 +1,3 @@
1
1
  module ActiveAdminTheme
2
- VERSION = "3.1.0"
2
+ VERSION = "3.1.1"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: active_admin_theme
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.1.0
4
+ version: 3.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Igor Fedoronchuk