active_s95 1.0.0

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.
Files changed (71) hide show
  1. checksums.yaml +7 -0
  2. data/LICENCE.txt +24 -0
  3. data/README.md +120 -0
  4. data/app/assets/fonts/Lato-Bold.eot +0 -0
  5. data/app/assets/fonts/Lato-Bold.ttf +0 -0
  6. data/app/assets/fonts/Lato-Bold.woff +0 -0
  7. data/app/assets/fonts/Lato-Bold.woff2 +0 -0
  8. data/app/assets/fonts/Lato-BoldItalic.eot +0 -0
  9. data/app/assets/fonts/Lato-BoldItalic.ttf +0 -0
  10. data/app/assets/fonts/Lato-BoldItalic.woff +0 -0
  11. data/app/assets/fonts/Lato-BoldItalic.woff2 +0 -0
  12. data/app/assets/fonts/Lato-Italic.eot +0 -0
  13. data/app/assets/fonts/Lato-Italic.ttf +0 -0
  14. data/app/assets/fonts/Lato-Italic.woff +0 -0
  15. data/app/assets/fonts/Lato-Italic.woff2 +0 -0
  16. data/app/assets/fonts/Lato-Regular.eot +0 -0
  17. data/app/assets/fonts/Lato-Regular.ttf +0 -0
  18. data/app/assets/fonts/Lato-Regular.woff +0 -0
  19. data/app/assets/fonts/Lato-Regular.woff2 +0 -0
  20. data/app/assets/javascripts/arctic_admin/base.js +2 -0
  21. data/app/assets/javascripts/arctic_admin/main.js +105 -0
  22. data/app/assets/stylesheets/arctic_admin/_base.scss +30 -0
  23. data/app/assets/stylesheets/arctic_admin/_buttons.scss +80 -0
  24. data/app/assets/stylesheets/arctic_admin/_common.scss +101 -0
  25. data/app/assets/stylesheets/arctic_admin/_custom_enhancements.scss +275 -0
  26. data/app/assets/stylesheets/arctic_admin/_fonts.scss +47 -0
  27. data/app/assets/stylesheets/arctic_admin/_grid.scss +4 -0
  28. data/app/assets/stylesheets/arctic_admin/_main.scss +57 -0
  29. data/app/assets/stylesheets/arctic_admin/_mobile_utilities.scss +212 -0
  30. data/app/assets/stylesheets/arctic_admin/_reset.scss +41 -0
  31. data/app/assets/stylesheets/arctic_admin/components/_columns.scss +4 -0
  32. data/app/assets/stylesheets/arctic_admin/components/_comments.scss +49 -0
  33. data/app/assets/stylesheets/arctic_admin/components/_date_picker.scss +38 -0
  34. data/app/assets/stylesheets/arctic_admin/components/_dialogs.scss +23 -0
  35. data/app/assets/stylesheets/arctic_admin/components/_flash.scss +32 -0
  36. data/app/assets/stylesheets/arctic_admin/components/_form.scss +182 -0
  37. data/app/assets/stylesheets/arctic_admin/components/_inputs.scss +218 -0
  38. data/app/assets/stylesheets/arctic_admin/components/_pagination.scss +80 -0
  39. data/app/assets/stylesheets/arctic_admin/components/_panel_contents.scss +126 -0
  40. data/app/assets/stylesheets/arctic_admin/components/_select2.scss +50 -0
  41. data/app/assets/stylesheets/arctic_admin/components/_status_tag.scss +41 -0
  42. data/app/assets/stylesheets/arctic_admin/components/_tables.scss +434 -0
  43. data/app/assets/stylesheets/arctic_admin/components/_tabs.scss +51 -0
  44. data/app/assets/stylesheets/arctic_admin/components/_toggle.scss +77 -0
  45. data/app/assets/stylesheets/arctic_admin/layouts/_filter.scss +142 -0
  46. data/app/assets/stylesheets/arctic_admin/layouts/_footer.scss +4 -0
  47. data/app/assets/stylesheets/arctic_admin/layouts/_header.scss +444 -0
  48. data/app/assets/stylesheets/arctic_admin/layouts/_main_content.scss +47 -0
  49. data/app/assets/stylesheets/arctic_admin/layouts/_sidebar.scss +150 -0
  50. data/app/assets/stylesheets/arctic_admin/layouts/_wrapper.scss +8 -0
  51. data/app/assets/stylesheets/arctic_admin/mixins/_buttons_mixins.scss +142 -0
  52. data/app/assets/stylesheets/arctic_admin/mixins/_forms.scss +9 -0
  53. data/app/assets/stylesheets/arctic_admin/mixins/_mixins.scss +4 -0
  54. data/app/assets/stylesheets/arctic_admin/mixins/_prefix_mixins.scss +63 -0
  55. data/app/assets/stylesheets/arctic_admin/mixins/_sidebar_mixins.scss +24 -0
  56. data/app/assets/stylesheets/arctic_admin/pages/_form.scss +124 -0
  57. data/app/assets/stylesheets/arctic_admin/pages/_index.scss +207 -0
  58. data/app/assets/stylesheets/arctic_admin/pages/_login.scss +65 -0
  59. data/app/assets/stylesheets/arctic_admin/pages/_show.scss +3 -0
  60. data/app/assets/stylesheets/arctic_admin/variables/_borders.scss +7 -0
  61. data/app/assets/stylesheets/arctic_admin/variables/_box_shadows.scss +6 -0
  62. data/app/assets/stylesheets/arctic_admin/variables/_colors.scss +59 -0
  63. data/app/assets/stylesheets/arctic_admin/variables/_fonts.scss +10 -0
  64. data/app/assets/stylesheets/arctic_admin/variables/_icons.scss +17 -0
  65. data/app/assets/stylesheets/arctic_admin/variables/_media_queries.scss +41 -0
  66. data/app/assets/stylesheets/arctic_admin/variables/_size.scss +15 -0
  67. data/app/assets/stylesheets/arctic_admin/variables/_spaces.scss +31 -0
  68. data/app/assets/stylesheets/arctic_admin/variables/_variables.scss +7 -0
  69. data/lib/active_s95/version.rb +3 -0
  70. data/lib/arctic_admin.rb +9 -0
  71. metadata +171 -0
@@ -0,0 +1,275 @@
1
+ .panel {
2
+ border-radius: $border-radius-card !important;
3
+ box-shadow: $box-shadow-card;
4
+ transition: all 0.3s ease;
5
+ overflow: hidden;
6
+
7
+ &:hover {
8
+ box-shadow: $box-shadow-hover;
9
+ transform: translateY(-4px);
10
+ }
11
+
12
+ h3,
13
+ .panel_title {
14
+ text-transform: uppercase;
15
+ font-weight: 800;
16
+ letter-spacing: 1.2px;
17
+ color: $indigo-dark;
18
+ font-family: $font-family-accent;
19
+ }
20
+ }
21
+
22
+ .panel_contents {
23
+ background: #fff;
24
+ }
25
+
26
+
27
+ h1,
28
+ h2,
29
+ h3,
30
+ h4,
31
+ h5,
32
+ h6 {
33
+ font-family: $font-family-accent;
34
+
35
+ &.page_title,
36
+ &.section_title {
37
+ text-transform: uppercase;
38
+ font-weight: 800;
39
+ letter-spacing: 1.5px;
40
+ color: $indigo-dark;
41
+ }
42
+ }
43
+
44
+ .title {
45
+ font-family: $font-family-accent;
46
+ font-weight: 700;
47
+ color: $indigo;
48
+ }
49
+
50
+ // ====================
51
+ // ICON CONTAINERS
52
+ // ====================
53
+ .icon-container {
54
+ display: inline-flex;
55
+ align-items: center;
56
+ justify-content: center;
57
+ width: 40px;
58
+ height: 40px;
59
+ border-radius: 50%;
60
+ background: linear-gradient(135deg, rgba($indigo, 0.1) 0%, rgba($indigo, 0.05) 100%);
61
+ box-shadow: 0 2px 8px rgba($indigo, 0.15);
62
+ transition: all 0.3s ease;
63
+
64
+ &:hover {
65
+ background: linear-gradient(135deg, rgba($indigo, 0.15) 0%, rgba($indigo, 0.08) 100%);
66
+ box-shadow: 0 4px 12px rgba($indigo, 0.25);
67
+ transform: translateY(-2px);
68
+ }
69
+
70
+ i,
71
+ svg {
72
+ color: $indigo;
73
+ }
74
+ }
75
+
76
+ // ====================
77
+ // ATTRIBUTES TABLE (SHOW PAGE)
78
+ // ====================
79
+ .attributes_table {
80
+ th {
81
+ font-weight: 700;
82
+ text-transform: uppercase;
83
+ letter-spacing: 0.5px;
84
+ font-size: 12px;
85
+ color: $indigo-dark;
86
+ }
87
+
88
+ td {
89
+ &.monospace {
90
+ font-family: $font-family-mono;
91
+ font-weight: 600;
92
+ color: $indigo;
93
+ }
94
+ }
95
+ }
96
+
97
+ // ====================
98
+ // LOGO STYLING
99
+ // ====================
100
+ #site_title,
101
+ .site_title {
102
+ font-family: $font-family-accent !important;
103
+ font-weight: 900 !important;
104
+ font-size: 22px !important;
105
+ letter-spacing: 2px !important;
106
+ text-transform: uppercase !important;
107
+ background: linear-gradient(135deg, $indigo 0%, $indigo-light 100%);
108
+ -webkit-background-clip: text;
109
+ -webkit-text-fill-color: transparent;
110
+ background-clip: text;
111
+ }
112
+
113
+ // ====================
114
+ // FORM INPUTS
115
+ // ====================
116
+ input[type="text"],
117
+ input[type="email"],
118
+ input[type="password"],
119
+ input[type="number"],
120
+ input[type="url"],
121
+ input[type="tel"],
122
+ textarea,
123
+ select {
124
+ border-radius: $border-radius-input !important;
125
+ border: 2px solid $border-color;
126
+ transition: all 0.3s ease;
127
+
128
+ &:focus {
129
+ border-color: $indigo;
130
+ box-shadow: 0 0 0 3px rgba($indigo, 0.1);
131
+ outline: none;
132
+ }
133
+ }
134
+
135
+ // ====================
136
+ // PAGINATION
137
+ // ====================
138
+ .pagination {
139
+
140
+ a,
141
+ span {
142
+ border-radius: $border-radius-small;
143
+ transition: all 0.2s ease;
144
+ }
145
+
146
+ a {
147
+ &:hover {
148
+ background-color: rgba($indigo, 0.1);
149
+ color: $indigo;
150
+ transform: translateY(-1px);
151
+ }
152
+ }
153
+
154
+ .current {
155
+ background: linear-gradient(135deg, $indigo 0%, $indigo-dark 100%);
156
+ color: #fff;
157
+ font-weight: 700;
158
+ }
159
+ }
160
+
161
+ // ====================
162
+ // FILTERS SIDEBAR
163
+ // ====================
164
+ #filters_sidebar_section {
165
+ .panel {
166
+ background: linear-gradient(135deg, rgba($indigo, 0.03) 0%, rgba($indigo, 0.01) 100%);
167
+ }
168
+
169
+ .filter_form_field {
170
+ label {
171
+ font-weight: 600;
172
+ color: $indigo-dark;
173
+ text-transform: uppercase;
174
+ font-size: 11px;
175
+ letter-spacing: 0.5px;
176
+ }
177
+ }
178
+ }
179
+
180
+ // ====================
181
+ // FLASH MESSAGES
182
+ // ====================
183
+ .flash {
184
+ border-radius: $border-radius-button;
185
+ box-shadow: $box-shadow-card;
186
+ font-weight: 600;
187
+ letter-spacing: 0.3px;
188
+
189
+ &.flash_notice {
190
+ background: linear-gradient(135deg, rgba($teal, 0.9) 0%, rgba($teal, 0.8) 100%);
191
+ }
192
+
193
+ &.flash_error {
194
+ background: linear-gradient(135deg, rgba($coral, 0.9) 0%, rgba($coral, 0.8) 100%);
195
+ }
196
+ }
197
+
198
+ // ====================
199
+ // SCOPES (TABS)
200
+ // ====================
201
+ .scopes {
202
+ .scope {
203
+ border-radius: $border-radius-button;
204
+ transition: all 0.2s ease;
205
+
206
+ &:hover {
207
+ background-color: rgba($indigo, 0.08);
208
+ transform: translateY(-1px);
209
+ }
210
+
211
+ &.selected {
212
+ background: linear-gradient(135deg, $indigo 0%, $indigo-dark 100%);
213
+ color: #fff;
214
+ font-weight: 700;
215
+ }
216
+ }
217
+ }
218
+
219
+ // ====================
220
+ // ACTION ITEMS
221
+ // ====================
222
+ .action_item {
223
+ a {
224
+ transition: all 0.2s ease;
225
+
226
+ &:hover {
227
+ color: $indigo;
228
+ transform: translateX(3px);
229
+ }
230
+ }
231
+ }
232
+
233
+ // ====================
234
+ // DASHBOARD WIDGETS
235
+ // ====================
236
+ .dashboard {
237
+ .panel {
238
+ background: #fff;
239
+ border-left: 4px solid $indigo;
240
+ }
241
+
242
+ .attributes_table {
243
+ border-spacing: 0 4px;
244
+ }
245
+ }
246
+
247
+ // ====================
248
+ // BATCH ACTIONS
249
+ // ====================
250
+ .batch_actions_selector {
251
+ border-radius: $border-radius-button !important;
252
+ }
253
+
254
+ .dropdown_menu {
255
+ border-radius: $border-radius-small;
256
+ box-shadow: $box-shadow-hover;
257
+ border: none;
258
+ }
259
+
260
+ // ====================
261
+ // CHARTS & GRAPHS
262
+ // ====================
263
+ .chart-container {
264
+ canvas {
265
+ border-radius: $border-radius-small;
266
+ }
267
+ }
268
+
269
+ // Custom chart colors (to be used in JS)
270
+ :root {
271
+ --chart-primary: #{$indigo};
272
+ --chart-accent-1: #{$teal};
273
+ --chart-accent-2: #{$coral};
274
+ --chart-grid: rgba(102, 16, 242, 0.05);
275
+ }
@@ -0,0 +1,47 @@
1
+ /* Webfont: Lato-Bold */@font-face {
2
+ font-family: 'LatoWeb';
3
+ src: font-url('Lato-Bold.eot'); /* IE9 Compat Modes */
4
+ src: font-url('Lato-Bold.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
5
+ font-url('Lato-Bold.woff2') format('woff2'), /* Modern Browsers */
6
+ font-url('Lato-Bold.woff') format('woff'), /* Modern Browsers */
7
+ font-url('Lato-Bold.ttf') format('truetype');
8
+ font-style: normal;
9
+ font-weight: bold;
10
+ text-rendering: optimizeLegibility;
11
+ }
12
+
13
+ /* Webfont: Lato-BoldItalic */@font-face {
14
+ font-family: 'LatoWeb';
15
+ src: font-url('Lato-BoldItalic.eot'); /* IE9 Compat Modes */
16
+ src: font-url('Lato-BoldItalic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
17
+ font-url('Lato-BoldItalic.woff2') format('woff2'), /* Modern Browsers */
18
+ font-url('Lato-BoldItalic.woff') format('woff'), /* Modern Browsers */
19
+ font-url('Lato-BoldItalic.ttf') format('truetype');
20
+ font-style: italic;
21
+ font-weight: bold;
22
+ text-rendering: optimizeLegibility;
23
+ }
24
+
25
+ /* Webfont: Lato-Italic */@font-face {
26
+ font-family: 'LatoWeb';
27
+ src: font-url('Lato-Italic.eot'); /* IE9 Compat Modes */
28
+ src: font-url('Lato-Italic.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
29
+ font-url('Lato-Italic.woff2') format('woff2'), /* Modern Browsers */
30
+ font-url('Lato-Italic.woff') format('woff'), /* Modern Browsers */
31
+ font-url('Lato-Italic.ttf') format('truetype');
32
+ font-style: italic;
33
+ font-weight: normal;
34
+ text-rendering: optimizeLegibility;
35
+ }
36
+
37
+ /* Webfont: Lato-Regular */@font-face {
38
+ font-family: 'LatoWeb';
39
+ src: font-url('Lato-Regular.eot'); /* IE9 Compat Modes */
40
+ src: font-url('Lato-Regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */
41
+ font-url('Lato-Regular.woff2') format('woff2'), /* Modern Browsers */
42
+ font-url('Lato-Regular.woff') format('woff'), /* Modern Browsers */
43
+ font-url('Lato-Regular.ttf') format('truetype');
44
+ font-style: normal;
45
+ font-weight: normal;
46
+ text-rendering: optimizeLegibility;
47
+ }
@@ -0,0 +1,4 @@
1
+ .columns {
2
+ display: flex;
3
+ flex-wrap:wrap;
4
+ }
@@ -0,0 +1,57 @@
1
+ @import 'reset';
2
+
3
+ @import './variables/variables';
4
+
5
+ @import './mixins/mixins';
6
+
7
+ @import 'mobile_utilities';
8
+
9
+ @import 'common';
10
+ @import 'buttons';
11
+ @import 'grid';
12
+
13
+ @import './components/columns';
14
+ @import './components/comments';
15
+ @import './components/date_picker';
16
+ @import './components/dialogs';
17
+ @import './components/flash';
18
+ @import './components/form';
19
+ @import './components/inputs';
20
+ @import './components/pagination';
21
+ @import './components/panel_contents';
22
+ @import './components/select2';
23
+ @import './components/status_tag';
24
+ @import './components/tables';
25
+ @import './components/tabs';
26
+
27
+ @import './layouts/filter';
28
+ @import './layouts/footer';
29
+ @import './layouts/header';
30
+ @import './layouts/main_content';
31
+ @import './layouts/sidebar';
32
+ @import './layouts/wrapper';
33
+
34
+ @import './pages/form';
35
+ @import './pages/index';
36
+ @import './pages/login';
37
+ @import './pages/show';
38
+
39
+ body {
40
+ font-family: $font-family-body;
41
+ background-color: $body-background;
42
+ color: $text-color;
43
+ }
44
+
45
+ h1,
46
+ h2,
47
+ h3,
48
+ h4,
49
+ h5,
50
+ h6 {
51
+ margin-top: 0;
52
+ }
53
+
54
+ a {
55
+ color: $link-primary-color;
56
+ text-decoration: none;
57
+ }
@@ -0,0 +1,212 @@
1
+ // Mobile-First Utilities and Helpers
2
+ // Touch-friendly interactions, safe areas, and mobile-specific utilities
3
+
4
+ // Touch-friendly minimum sizes (44x44px iOS HIG, 48x48px Material Design)
5
+ $touch-target-min: 44px !default;
6
+ $touch-target-optimal: 48px !default;
7
+
8
+ // Touch-friendly button mixin
9
+ @mixin touch-button($min-height: $touch-target-min) {
10
+ min-height: $min-height;
11
+ min-width: $min-height;
12
+ padding: 12px 20px;
13
+
14
+ @media screen and (max-width: $sm-width) {
15
+ min-height: $touch-target-optimal;
16
+ min-width: $touch-target-optimal;
17
+ }
18
+ }
19
+
20
+ // Tap highlight removal (for custom touch feedback)
21
+ @mixin no-tap-highlight {
22
+ -webkit-tap-highlight-color: transparent;
23
+ -webkit-touch-callout: none;
24
+ }
25
+
26
+ // Momentum scrolling for smooth scrolling on iOS
27
+ @mixin momentum-scroll {
28
+ overflow-y: auto;
29
+ -webkit-overflow-scrolling: touch;
30
+ }
31
+
32
+ // Safe area insets for iOS notch/home bar
33
+ @mixin safe-area-inset-padding($side: 'all', $additional: 0) {
34
+ @if $side =='all' {
35
+ padding: calc(#{$additional} + env(safe-area-inset-top)) calc(#{$additional} + env(safe-area-inset-right)) calc(#{$additional} + env(safe-area-inset-bottom)) calc(#{$additional} + env(safe-area-inset-left));
36
+ }
37
+
38
+ @else if $side =='top' {
39
+ padding-top: calc(#{$additional} + env(safe-area-inset-top));
40
+ }
41
+
42
+ @else if $side =='bottom' {
43
+ padding-bottom: calc(#{$additional} + env(safe-area-inset-bottom));
44
+ }
45
+
46
+ @else if $side =='left' {
47
+ padding-left: calc(#{$additional} + env(safe-area-inset-left));
48
+ }
49
+
50
+ @else if $side =='right' {
51
+ padding-right: calc(#{$additional} + env(safe-area-inset-right));
52
+ }
53
+ }
54
+
55
+ // Card view transformation helper
56
+ @mixin table-to-cards {
57
+ thead {
58
+ display: none;
59
+ }
60
+
61
+ tbody tr {
62
+ display: block;
63
+ margin-bottom: 16px;
64
+ border-radius: $border-radius;
65
+ box-shadow: $box-shadow-card;
66
+ border-left: none !important;
67
+
68
+ td {
69
+ display: flex;
70
+ justify-content: space-between;
71
+ align-items: center;
72
+ padding: 12px 16px;
73
+ border: none;
74
+ gap: 12px;
75
+
76
+ &:first-child {
77
+ border-radius: $border-radius-small $border-radius-small 0 0;
78
+ padding-top: 16px;
79
+ }
80
+
81
+ &:last-child {
82
+ border-radius: 0 0 $border-radius-small $border-radius-small;
83
+ padding-bottom: 16px;
84
+ }
85
+
86
+ // Add label before value
87
+ &::before {
88
+ content: attr(data-label);
89
+ font-weight: 700;
90
+ text-transform: uppercase;
91
+ font-size: 11px;
92
+ letter-spacing: 0.5px;
93
+ color: $indigo;
94
+ flex-shrink: 0;
95
+ }
96
+
97
+ // Hide elements that don't make sense in card view
98
+ &.col-selectable {
99
+ order: -1;
100
+ background: rgba($indigo, 0.05);
101
+
102
+ &::before {
103
+ content: '';
104
+ }
105
+ }
106
+
107
+ &.col-actions {
108
+ order: 999;
109
+ background: rgba($indigo, 0.03);
110
+ justify-content: center;
111
+
112
+ &::before {
113
+ content: '';
114
+ }
115
+ }
116
+ }
117
+ }
118
+ }
119
+
120
+ // Visibility utilities
121
+ .mobile-only {
122
+ @media screen and (min-width: $md-width) {
123
+ display: none !important;
124
+ }
125
+ }
126
+
127
+ .desktop-only {
128
+ @media screen and (max-width: #{$md-width - 1}) {
129
+ display: none !important;
130
+ }
131
+ }
132
+
133
+ .tablet-only {
134
+ display: none !important;
135
+
136
+ @media screen and (min-width: $md-tablet) and (max-width: #{$md-width - 1}) {
137
+ display: block !important;
138
+ }
139
+ }
140
+
141
+ // Prevent zoom on input focus (iOS)
142
+ @mixin prevent-zoom {
143
+ font-size: 16px !important;
144
+
145
+ @media screen and (min-width: $md-width) {
146
+ font-size: $font-size !important;
147
+ }
148
+ }
149
+
150
+ // Full-width mobile overlay
151
+ @mixin mobile-overlay {
152
+ @media screen and (max-width: $sm-width) {
153
+ position: fixed;
154
+ top: 0;
155
+ left: 0;
156
+ right: 0;
157
+ bottom: 0;
158
+ width: 100vw;
159
+ height: 100vh;
160
+ z-index: 9999;
161
+ background: white;
162
+ overflow-y: auto;
163
+ -webkit-overflow-scrolling: touch;
164
+ }
165
+ }
166
+
167
+ // Backdrop overlay for modals/drawers
168
+ @mixin backdrop-overlay($z-index: 998) {
169
+ &::before {
170
+ content: '';
171
+ position: fixed;
172
+ top: 0;
173
+ left: 0;
174
+ right: 0;
175
+ bottom: 0;
176
+ background: rgba(0, 0, 0, 0.5);
177
+ z-index: $z-index;
178
+ opacity: 0;
179
+ pointer-events: none;
180
+ transition: opacity 0.3s ease;
181
+ }
182
+
183
+ &.open::before,
184
+ &.sidebar_open::before,
185
+ &.tabs_open::before {
186
+ opacity: 1;
187
+ pointer-events: all;
188
+ }
189
+ }
190
+
191
+ // Swipe-ready preparation (for future JS integration)
192
+ .swipeable {
193
+ @include no-tap-highlight;
194
+ touch-action: pan-y; // Allow vertical scroll, prepare for horizontal swipe
195
+ user-select: none;
196
+ }
197
+
198
+ // Sticky bottom actions (for forms, filters)
199
+ @mixin sticky-bottom-actions {
200
+ @media screen and (max-width: $sm-width) {
201
+ position: sticky;
202
+ bottom: 0;
203
+ left: 0;
204
+ right: 0;
205
+ background: white;
206
+ padding: 12px 16px;
207
+ @include safe-area-inset-padding('bottom', 12px);
208
+ box-shadow: 0 -4px 12px rgba(0, 0, 0, 0.1);
209
+ z-index: 100;
210
+ margin: 0 -16px -16px;
211
+ }
212
+ }
@@ -0,0 +1,41 @@
1
+ *, *:after, *:before {
2
+ -webkit-box-sizing: border-box;
3
+ -moz-box-sizing: border-box;
4
+ box-sizing: border-box;
5
+ }
6
+
7
+ html {
8
+ -webkit-tap-highlight-color: rgba(0,0,0,0);
9
+ }
10
+
11
+ html, body {
12
+ padding: 0;
13
+ margin: 0;
14
+ min-height: 100vh;
15
+ }
16
+
17
+ fieldset {
18
+ border: none;
19
+ margin: 0;
20
+ padding: 0;
21
+ }
22
+
23
+ legend {
24
+ padding: 0;
25
+ }
26
+
27
+ ol, ul {
28
+ margin: 0;
29
+ padding: 0;
30
+ list-style: none;
31
+ }
32
+
33
+ th {
34
+ font-weight: normal;
35
+ }
36
+
37
+ abbr[title] {
38
+ border-bottom: none;
39
+ cursor: inherit;
40
+ text-decoration: none;
41
+ }
@@ -0,0 +1,4 @@
1
+ .columns {
2
+ display: flex;
3
+ flex-wrap: wrap;
4
+ }
@@ -0,0 +1,49 @@
1
+ .comments {
2
+ margin-top: 20px;
3
+ @include clear-fix();
4
+
5
+ h3 {
6
+ margin: 0 0 10px 0;
7
+ }
8
+
9
+ .panel_contents .empty {
10
+ margin-bottom: 10px;
11
+ display: inline-block;
12
+ }
13
+
14
+ .active_admin_comment:not(#new_active_admin_comment) {
15
+ margin-bottom: 20px;
16
+ border: 1px solid $border-color;
17
+
18
+ .active_admin_comment_meta {
19
+ background-color: $sidebar-background;
20
+ padding: 8px 10px;
21
+
22
+ .active_admin_comment_author {
23
+ margin: 0;
24
+ display: inline-block;
25
+ }
26
+
27
+ span { // date
28
+ font-size: 14px;
29
+ font-style: italic;
30
+ line-height: 21px;
31
+ }
32
+
33
+ a[data-method="delete"] {
34
+ @include primary-button($primary-color, white);
35
+ padding: 2px 9px;
36
+ font-size: 12px;
37
+ float: right;
38
+ }
39
+ }
40
+
41
+ .active_admin_comment_body {
42
+ padding: 0 10px;
43
+ }
44
+ }
45
+
46
+ .pagination_information {
47
+ margin-bottom: 20px;
48
+ }
49
+ }