j1-template 2022.0.17 → 2022.0.18
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 +4 -4
- data/assets/error_pages/HTTP204.html +1 -1
- data/assets/error_pages/HTTP400.html +1 -1
- data/assets/error_pages/HTTP401.html +1 -1
- data/assets/error_pages/HTTP403.html +1 -1
- data/assets/error_pages/HTTP404.html +1 -1
- data/assets/error_pages/HTTP444.html +1 -1
- data/assets/error_pages/HTTP445.html +1 -1
- data/assets/error_pages/HTTP446.html +1 -1
- data/assets/error_pages/HTTP447.html +1 -1
- data/assets/error_pages/HTTP448.html +1 -1
- data/assets/error_pages/HTTP500.html +1 -1
- data/assets/error_pages/HTTP501.html +1 -1
- data/assets/error_pages/HTTP502.html +1 -1
- data/assets/error_pages/HTTP503.html +1 -1
- data/assets/themes/j1/adapter/js/customFunctions.js +221 -0
- data/assets/themes/j1/adapter/js/customModule.js +221 -0
- data/assets/themes/j1/adapter/js/dropdowns.js +319 -0
- data/assets/themes/j1/adapter/js/rtable.js +2 -6
- data/assets/themes/j1/modules/dropdowns/css/theme/uno/dropdowns.css +109 -0
- data/assets/themes/j1/modules/dropdowns/css/theme/uno/dropdowns.min.css +15 -0
- data/assets/themes/j1/modules/dropdowns/js/cash.js +978 -0
- data/assets/themes/j1/modules/dropdowns/js/dropdowns.js +864 -0
- data/lib/j1/commands/generate.rb +25 -14
- data/lib/j1/commands/rebuild.rb +1 -0
- data/lib/j1/commands/reset.rb +6 -3
- data/lib/j1/commands/setup.rb +18 -13
- data/lib/j1/commands/site.rb +2 -1
- data/lib/j1/utils/exec2.rb +33 -7
- data/lib/j1/version.rb +3 -3
- data/lib/starter_web/Gemfile +1 -1
- data/lib/starter_web/_config.yml +1 -1
- data/lib/starter_web/_data/apps/carousel.yml +138 -140
- data/lib/starter_web/_data/blocks/banner.yml +7 -7
- data/lib/starter_web/_data/modules/defaults/dropdowns.yml +164 -0
- data/lib/starter_web/_data/modules/dropdowns.yml +77 -0
- data/lib/starter_web/_data/resources.yml +73 -2
- data/lib/starter_web/_includes/attributes.asciidoc +1 -1
- data/lib/starter_web/_plugins/lunr_index.rb +2 -2
- data/lib/starter_web/package.json +2 -2
- data/lib/starter_web/pages/public/about/about_site.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/000_intro.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/documentation/documentation.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/multi-document/multi.adoc +1 -1
- data/lib/starter_web/pages/public/asciidoc_skeletons/simple-document/simple.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.ads.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.base.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/100_present_images.comments.asciidoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/200_typography.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/300_icon_fonts.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/400_asciidoc_extensions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/410_bs_modals_extentions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/420_responsive_tables_extensions.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/500_themes.adoc +1 -1
- data/lib/starter_web/pages/public/learn/roundtrip/600_quicksearch.adoc +1 -1
- data/lib/starter_web/pages/public/learn/where_to_go.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/100_copyright.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/200_impress.adoc +1 -1
- data/lib/starter_web/pages/public/legal/en/400_comment_policy.adoc +1 -1
- data/lib/starter_web/pages/public/manuals/j1-dropdown.adoc +294 -0
- data/lib/starter_web/pages/public/manuals/{dropdown-help.adoc → msdropdown.adoc} +0 -0
- data/lib/starter_web/pages/public/panels/intro_panel/panel.adoc +1 -1
- data/lib/starter_web/pages/public/previewer/preview_bootstrap_theme.adoc +1 -1
- data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
- data/lib/starter_web/utilsrv/package.json +1 -1
- metadata +14 -6
- data/assets/themes/j1/modules/fab/css/theme/uno/fab.css +0 -373
- data/assets/themes/j1/modules/fab/css/theme/uno/fab.min.css +0 -15
@@ -0,0 +1,164 @@
|
|
1
|
+
# ------------------------------------------------------------------------------
|
2
|
+
# ~/_data/modules/defaults/dropdowns.yml
|
3
|
+
# Default Configuration of the Dropdowns Module
|
4
|
+
#
|
5
|
+
# Product/Info:
|
6
|
+
# https://jekyll.one
|
7
|
+
# https://materializecss.com/dropdown.html
|
8
|
+
#
|
9
|
+
# Copyright (C) 2021 Juergen Adams
|
10
|
+
#
|
11
|
+
# Materialize is licensed under the MIT License.
|
12
|
+
# See: https://github.com/Dogfalo/materialize/blob/v1-dev/LICENSE
|
13
|
+
# J1 Template is licensed under the MIT License.
|
14
|
+
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
15
|
+
#
|
16
|
+
# ------------------------------------------------------------------------------
|
17
|
+
# NOTE:
|
18
|
+
#
|
19
|
+
# ------------------------------------------------------------------------------
|
20
|
+
|
21
|
+
# ------------------------------------------------------------------------------
|
22
|
+
# Description (used for J1 CC only)
|
23
|
+
#
|
24
|
+
description:
|
25
|
+
|
26
|
+
title: Dropdowns Module
|
27
|
+
scope: Default settings
|
28
|
+
location: _data/modules/defaults/dropdowns.yml
|
29
|
+
|
30
|
+
# ------------------------------------------------------------------------------
|
31
|
+
# Default settings
|
32
|
+
#
|
33
|
+
defaults:
|
34
|
+
enabled: false
|
35
|
+
|
36
|
+
# ----------------------------------------------------------------------------
|
37
|
+
# DROPDOWN options
|
38
|
+
# ----------------------------------------------------------------------------
|
39
|
+
#
|
40
|
+
# enabled
|
41
|
+
# ----------------------------------------------------------------------------
|
42
|
+
# Enables|Disables the use of the Dropdowns
|
43
|
+
#
|
44
|
+
# values: boolean (true|false)
|
45
|
+
# default: false
|
46
|
+
#
|
47
|
+
# alignment
|
48
|
+
# ----------------------------------------------------------------------------
|
49
|
+
# Defines the edge the menu is aligned to.
|
50
|
+
#
|
51
|
+
# values: String (top|right|bottom|left)
|
52
|
+
# default: left
|
53
|
+
#
|
54
|
+
# autoTrigger
|
55
|
+
# ----------------------------------------------------------------------------
|
56
|
+
# If true, automatically focus dropdown el for keyboard.
|
57
|
+
#
|
58
|
+
# values: boolean (true|false)
|
59
|
+
# default: true
|
60
|
+
#
|
61
|
+
# constrainWidth
|
62
|
+
# ----------------------------------------------------------------------------
|
63
|
+
# If true, constrainWidth to the size of the dropdown activator.
|
64
|
+
#
|
65
|
+
# values: boolean (true|false)
|
66
|
+
# default: true
|
67
|
+
#
|
68
|
+
# container
|
69
|
+
# ----------------------------------------------------------------------------
|
70
|
+
# Defines the edge the menu is aligned to.
|
71
|
+
#
|
72
|
+
# values: Element (HTML element|false)
|
73
|
+
# default: false
|
74
|
+
#
|
75
|
+
# coverTrigger
|
76
|
+
# ----------------------------------------------------------------------------
|
77
|
+
# If false, the dropdown will show below the trigger.
|
78
|
+
#
|
79
|
+
# values: boolean (true|false)
|
80
|
+
# default: true
|
81
|
+
#
|
82
|
+
# closeOnClick
|
83
|
+
# ----------------------------------------------------------------------------
|
84
|
+
# If true, close dropdown on item click.
|
85
|
+
#
|
86
|
+
# values: boolean (true|false)
|
87
|
+
# default: true
|
88
|
+
#
|
89
|
+
# hover
|
90
|
+
# ----------------------------------------------------------------------------
|
91
|
+
# If true, the dropdown will open on hover.
|
92
|
+
#
|
93
|
+
# values: boolean (true|false)
|
94
|
+
# default: false
|
95
|
+
#
|
96
|
+
# inDuration
|
97
|
+
# ----------------------------------------------------------------------------
|
98
|
+
# The duration of the transition enter in milliseconds.
|
99
|
+
#
|
100
|
+
# values: Number
|
101
|
+
# default: 150
|
102
|
+
#
|
103
|
+
# maxLenght
|
104
|
+
# ----------------------------------------------------------------------------
|
105
|
+
# The max length of the dropdown menu in pixels. If the menu exeeds
|
106
|
+
# the limit, scrollbars are shown to browse the menu.
|
107
|
+
#
|
108
|
+
# values: Number
|
109
|
+
# default: 350
|
110
|
+
#
|
111
|
+
# outDuration
|
112
|
+
# ----------------------------------------------------------------------------
|
113
|
+
# The duration of the transition out in milliseconds.
|
114
|
+
#
|
115
|
+
# values: Number
|
116
|
+
# default: 250
|
117
|
+
#
|
118
|
+
# cbOnOpen
|
119
|
+
# ----------------------------------------------------------------------------
|
120
|
+
# Function called when dropdown starts entering.
|
121
|
+
#
|
122
|
+
# values: Function|false
|
123
|
+
# default: false
|
124
|
+
#
|
125
|
+
# cbOnOpenEnd
|
126
|
+
# ----------------------------------------------------------------------------
|
127
|
+
# Function called when dropdown finishes entering.
|
128
|
+
#
|
129
|
+
# values: Function|false
|
130
|
+
# default: false
|
131
|
+
#
|
132
|
+
# cbOnClose
|
133
|
+
# ----------------------------------------------------------------------------
|
134
|
+
# Function called when dropdown starts exiting.
|
135
|
+
#
|
136
|
+
# values: Function|false
|
137
|
+
# default: false
|
138
|
+
#
|
139
|
+
# cbOnCloseEnd
|
140
|
+
# ----------------------------------------------------------------------------
|
141
|
+
# Function called when dropdown finishes exiting.
|
142
|
+
#
|
143
|
+
# values: Function|false
|
144
|
+
# default: false
|
145
|
+
#
|
146
|
+
# ----------------------------------------------------------------------------
|
147
|
+
#
|
148
|
+
options:
|
149
|
+
alignment: left
|
150
|
+
autoTrigger: true
|
151
|
+
constrainWidth: true
|
152
|
+
container: false
|
153
|
+
coverTrigger: true
|
154
|
+
closeOnClick: true
|
155
|
+
hover: false
|
156
|
+
inDuration: 150
|
157
|
+
outDuration: 250
|
158
|
+
maxLenght: 350
|
159
|
+
cbOnOpen: j1.adapter.dropdowns.cbOnOpen
|
160
|
+
cbOnClose: j1.adapter.dropdowns.cbOnClose
|
161
|
+
cbOnItemClick: false # j1.adapter.dropdowns.cbOnItemClick
|
162
|
+
|
163
|
+
# ------------------------------------------------------------------------------
|
164
|
+
# END config
|
@@ -0,0 +1,77 @@
|
|
1
|
+
# ------------------------------------------------------------------------------
|
2
|
+
# ~/_data/modules/dropdowns.yml
|
3
|
+
# User Configuration of the Dropdowns Module
|
4
|
+
#
|
5
|
+
# Product/Info:
|
6
|
+
# https://jekyll.one
|
7
|
+
#
|
8
|
+
# Copyright (C) 2021 Juergen Adams
|
9
|
+
#
|
10
|
+
# J1 Template is licensed under the MIT License.
|
11
|
+
# See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
|
12
|
+
#
|
13
|
+
# ------------------------------------------------------------------------------
|
14
|
+
# NOTE:
|
15
|
+
#
|
16
|
+
# ------------------------------------------------------------------------------
|
17
|
+
|
18
|
+
# ------------------------------------------------------------------------------
|
19
|
+
# Description (used for J1 CC only)
|
20
|
+
#
|
21
|
+
description:
|
22
|
+
|
23
|
+
title: Dropdowns Module
|
24
|
+
scope: User settings
|
25
|
+
location: _data/modules/dropdowns.yml
|
26
|
+
|
27
|
+
# ------------------------------------------------------------------------------
|
28
|
+
# User settings
|
29
|
+
#
|
30
|
+
settings:
|
31
|
+
enabled: true
|
32
|
+
|
33
|
+
dropdowns:
|
34
|
+
# --------------------------------------------------------------------------
|
35
|
+
# DROPDOWN configurations
|
36
|
+
# --------------------------------------------------------------------------
|
37
|
+
|
38
|
+
# --------------------------------------------------------------------------
|
39
|
+
# icon dropdown
|
40
|
+
#
|
41
|
+
- dropdown:
|
42
|
+
enabled: true
|
43
|
+
|
44
|
+
id: icon-dropdown
|
45
|
+
items: >
|
46
|
+
<li><a href="#"><i class="flag-icon flag-icon-de squared size-1x"></i></a></li>
|
47
|
+
<li class="divider" tabindex="-1"></li>
|
48
|
+
<li><a href="#"><i class="flag-icon flag-icon-be squared size-1x"></i></a></li>
|
49
|
+
<li><a href="#"><i class="flag-icon flag-icon-dk squared size-1x"></i></a></li>
|
50
|
+
<li><a href="#"><i class="flag-icon flag-icon-es squared size-1x"></i></a></li>
|
51
|
+
|
52
|
+
options:
|
53
|
+
alignment: bottom
|
54
|
+
hover: true
|
55
|
+
inDuration: 300
|
56
|
+
outDuration: 300
|
57
|
+
|
58
|
+
# --------------------------------------------------------------------------
|
59
|
+
# button dropdown
|
60
|
+
#
|
61
|
+
- dropdown:
|
62
|
+
enabled: true
|
63
|
+
|
64
|
+
id: button-dropdown
|
65
|
+
items: >
|
66
|
+
<li><a href="#"><i class="flag-icon flag-icon-de squared size-1x"></i></a></li>
|
67
|
+
<li class="divider" tabindex="-1"></li>
|
68
|
+
<li><a href="#"><i class="flag-icon flag-icon-be squared size-1x"></i></a></li>
|
69
|
+
<li><a href="#"><i class="flag-icon flag-icon-dk squared size-1x"></i></a></li>
|
70
|
+
<li><a href="#"><i class="flag-icon flag-icon-es squared size-1x"></i></a></li>
|
71
|
+
|
72
|
+
options:
|
73
|
+
alignment: left
|
74
|
+
hover: false
|
75
|
+
|
76
|
+
# ------------------------------------------------------------------------------
|
77
|
+
# END config
|
@@ -777,12 +777,11 @@ resources:
|
|
777
777
|
files: [
|
778
778
|
modules/fab/js/cash.js, # adapted|old (1.3.5) version from Materialize
|
779
779
|
modules/fab/js/fab.js, # modified version for J1 (former: button.js)
|
780
|
-
adapter/js/fab.js
|
780
|
+
adapter/js/fab.js
|
781
781
|
]
|
782
782
|
js: []
|
783
783
|
init_function: [ j1.adapter.fab.init ]
|
784
784
|
|
785
|
-
|
786
785
|
# ----------------------------------------------------------------------------
|
787
786
|
# lunr search engine, JS API used for the QuickSearch feature
|
788
787
|
# of J1 Template based on the Lunr JS API
|
@@ -911,6 +910,50 @@ resources:
|
|
911
910
|
# J1 Resources loaded ONDEMAND
|
912
911
|
# ----------------------------------------------------------------------------
|
913
912
|
|
913
|
+
# ----------------------------------------------------------------------------
|
914
|
+
# Custom module
|
915
|
+
#
|
916
|
+
- name: CustomModule
|
917
|
+
resource:
|
918
|
+
enabled: false
|
919
|
+
|
920
|
+
id: CustomModule
|
921
|
+
comment: Custom module
|
922
|
+
region: head
|
923
|
+
layout: [ all ]
|
924
|
+
required: ondemand
|
925
|
+
preload: false
|
926
|
+
script_load: async
|
927
|
+
dependencies: false
|
928
|
+
pass_init_data: false
|
929
|
+
data:
|
930
|
+
css: []
|
931
|
+
files: [ adapter/js/customModule.js ]
|
932
|
+
js: []
|
933
|
+
init_function: [ j1.adapter.customModule.init ]
|
934
|
+
|
935
|
+
# ----------------------------------------------------------------------------
|
936
|
+
# Custom functions
|
937
|
+
#
|
938
|
+
- name: CustomFunctions
|
939
|
+
resource:
|
940
|
+
enabled: false
|
941
|
+
|
942
|
+
id: customFunctions
|
943
|
+
comment: Custom functions
|
944
|
+
region: head
|
945
|
+
layout: [ all ]
|
946
|
+
required: ondemand
|
947
|
+
preload: false
|
948
|
+
script_load: async
|
949
|
+
dependencies: false
|
950
|
+
pass_init_data: false
|
951
|
+
data:
|
952
|
+
css: []
|
953
|
+
files: [ adapter/js/customFunctions.js ]
|
954
|
+
js: []
|
955
|
+
init_function: [ j1.adapter.customFunctions.init ]
|
956
|
+
|
914
957
|
# ----------------------------------------------------------------------------
|
915
958
|
# Rouge, pure Ruby themeable code highlighter
|
916
959
|
# See: http://rouge.jneen.net/
|
@@ -1161,6 +1204,8 @@ resources:
|
|
1161
1204
|
required: ondemand
|
1162
1205
|
preload: false
|
1163
1206
|
script_load: defer
|
1207
|
+
dependencies: false
|
1208
|
+
pass_init_data: false
|
1164
1209
|
data:
|
1165
1210
|
files: [
|
1166
1211
|
adapter/js/algolia.js,
|
@@ -1526,5 +1571,31 @@ resources:
|
|
1526
1571
|
js: []
|
1527
1572
|
init_function: [ j1.adapter.comments.init ]
|
1528
1573
|
|
1574
|
+
# ----------------------------------------------------------------------------
|
1575
|
+
# Dropdowns. JS API to create simple dropdown menus
|
1576
|
+
#
|
1577
|
+
- name: Dropdowns
|
1578
|
+
resource:
|
1579
|
+
enabled: true
|
1580
|
+
|
1581
|
+
id: dropdowns
|
1582
|
+
comment: Dropdown Menus
|
1583
|
+
region: head
|
1584
|
+
layout: [ all ]
|
1585
|
+
required: ondemand
|
1586
|
+
preload: false
|
1587
|
+
script_load: sync
|
1588
|
+
dependencies: false
|
1589
|
+
pass_init_data: false
|
1590
|
+
data:
|
1591
|
+
css: [ modules/dropdowns/css/theme/uno/dropdowns ]
|
1592
|
+
files: [
|
1593
|
+
modules/dropdowns/js/cash.js, # adapted|old (1.3.5) version from Materialize
|
1594
|
+
modules/dropdowns/js/dropdowns.js, # modified version for J1
|
1595
|
+
adapter/js/dropdowns.js
|
1596
|
+
]
|
1597
|
+
js: []
|
1598
|
+
init_function: [ j1.adapter.dropdowns.init ]
|
1599
|
+
|
1529
1600
|
# ------------------------------------------------------------------------------
|
1530
1601
|
# END config
|
@@ -437,7 +437,7 @@ end::tables[]
|
|
437
437
|
// -----------------------------------------------------------------------------
|
438
438
|
tag::products[]
|
439
439
|
:j1--license: MIT License
|
440
|
-
:j1--version: 2022.0.
|
440
|
+
:j1--version: 2022.0.18
|
441
441
|
:j1--site-name: Jekyll One
|
442
442
|
end::products[]
|
443
443
|
|
@@ -284,7 +284,7 @@ module Jekyll
|
|
284
284
|
elsif defined?(site.data['date'])
|
285
285
|
date = site.data['date']
|
286
286
|
else
|
287
|
-
date = '
|
287
|
+
date = '2022-01-01 00:00:00'
|
288
288
|
end
|
289
289
|
|
290
290
|
tagline = site.data['tagline']
|
@@ -364,6 +364,6 @@ end
|
|
364
364
|
|
365
365
|
module Jekyll
|
366
366
|
module J1LunrSearch
|
367
|
-
VERSION = '2022.0.
|
367
|
+
VERSION = '2022.0.18'
|
368
368
|
end
|
369
369
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Skeleton
|
3
3
|
tagline: multi document
|
4
|
-
date:
|
4
|
+
date: 2022-01-01 00:00:00
|
5
5
|
description: >
|
6
6
|
Multi-chapter documents are used for more complex articles of a website. If
|
7
7
|
the number of chapters is or exceeds three for an article, it could make sense
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Roundtrip
|
3
3
|
tagline: present images
|
4
|
-
date: 2020-11-03 00:00:00
|
4
|
+
date: 2020-11-03 00:00:00
|
5
5
|
description: >
|
6
6
|
Welcome to the preview page focussing on the image module. This page
|
7
7
|
shows some valuable features of the J1 Template to manage your image-based
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Roundtrip
|
3
3
|
tagline: present images
|
4
|
-
date: 2020-11-03 00:00:00
|
4
|
+
date: 2020-11-03 00:00:00
|
5
5
|
description: >
|
6
6
|
Welcome to the preview page focussing on the image module. This page
|
7
7
|
shows some valuable features of the J1 Template to manage your image-based
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Roundtrip
|
3
3
|
tagline: present images
|
4
|
-
date: 2020-11-03 00:00:00
|
4
|
+
date: 2020-11-03 00:00:00
|
5
5
|
description: >
|
6
6
|
Welcome to the preview page focussing on the image module. This page
|
7
7
|
shows some valuable features of the J1 Template to manage your image-based
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Roundtrip
|
3
3
|
tagline: present images
|
4
|
-
date: 2020-11-03 00:00:00
|
4
|
+
date: 2020-11-03 00:00:00
|
5
5
|
description: >
|
6
6
|
Welcome to the preview page focussing on the image module. This page
|
7
7
|
shows some valuable features of the J1 Template to manage your image-based
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Roundtrip
|
3
3
|
tagline: typography
|
4
|
-
date: 2020-11-05 00:00:00
|
4
|
+
date: 2020-11-05 00:00:00
|
5
5
|
description: >
|
6
6
|
The character font serves as one of the most crucial branding elements for
|
7
7
|
any business. Typography matters for any media presenting text. The text will
|
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
title: Roundtrip
|
3
3
|
tagline: responsive tables
|
4
|
-
date: 2020-11-09 00:00:00
|
4
|
+
date: 2020-11-09 00:00:00
|
5
5
|
description: >
|
6
6
|
Creating a design for responsive tables is challenging. The approach used by
|
7
7
|
J1 Template is based on pure CSS on top of the classic Bootstrap styles for
|