j1-template 2022.6.1 → 2022.6.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (93) hide show
  1. checksums.yaml +4 -4
  2. data/_includes/themes/j1/layouts/content_generator_news_panel_posts.html +4 -4
  3. data/_includes/themes/j1/layouts/layout_metadata_generator.html +36 -19
  4. data/_layouts/default.html +0 -5
  5. data/assets/data/banner.html +2 -2
  6. data/assets/data/mdi_icons.json +29539 -13502
  7. data/assets/data/panel.html +5 -5
  8. data/assets/themes/j1/adapter/js/masonry.js +273 -0
  9. data/assets/themes/j1/core/css/icon-fonts/mdi.css +3745 -319
  10. data/assets/themes/j1/core/css/icon-fonts/mdi.min.css +1 -1
  11. data/assets/themes/j1/core/css/themes/bootstrap/bootstrap.css +1 -3
  12. data/assets/themes/j1/core/css/themes/theme_vapor/bootstrap.css +1 -3
  13. data/assets/themes/j1/core/css/themes/unodark/bootstrap.css +7 -3
  14. data/assets/themes/j1/core/css/themes/unodark/bootstrap.min.css +1 -1
  15. data/assets/themes/j1/core/css/themes/unolight/bootstrap.css +77 -25
  16. data/assets/themes/j1/core/css/themes/unolight/bootstrap.min.css +1 -1
  17. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v7.0.96/eot/materialdesignicons-webfont.eot +0 -0
  18. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v7.0.96/materialdesignicons-webfont.woff +0 -0
  19. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v7.0.96/materialdesignicons-webfont.woff2 +0 -0
  20. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v7.0.96/preview.html +717 -0
  21. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v7.0.96/ttf/materialdesignicons-webfont.ttf +0 -0
  22. data/assets/themes/j1/core/fonts/material_design_icons/fonts/eot/materialdesignicons-webfont.eot +0 -0
  23. data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff +0 -0
  24. data/assets/themes/j1/core/fonts/material_design_icons/fonts/materialdesignicons-webfont.woff2 +0 -0
  25. data/assets/themes/j1/core/fonts/material_design_icons/fonts/ttf/materialdesignicons-webfont.ttf +0 -0
  26. data/assets/themes/j1/modules/masonry/LICENSE +22 -0
  27. data/assets/themes/j1/modules/masonry/README.md +84 -0
  28. data/assets/themes/j1/modules/masonry/js/masonry.pkgd.js +2503 -0
  29. data/assets/themes/j1/modules/masonry/js/masonry.pkgd.min.js +9 -0
  30. data/assets/themes/j1/modules/masterslider/css/theme/uno.css +2 -1
  31. data/assets/themes/j1/modules/masterslider/css/theme/uno.min.css +1 -81
  32. data/lib/j1/version.rb +1 -1
  33. data/lib/starter_web/Gemfile +1 -0
  34. data/lib/starter_web/README.md +5 -5
  35. data/lib/starter_web/_config.yml +5 -5
  36. data/lib/starter_web/_data/blocks/banner.yml +1 -1
  37. data/lib/starter_web/_data/j1_config.yml +1 -1
  38. data/lib/starter_web/_data/{custom → layouts/custom}/readme +0 -0
  39. data/lib/starter_web/_data/modules/defaults/masonry.yml +136 -0
  40. data/lib/starter_web/_data/modules/defaults/navigator.yml +0 -20
  41. data/lib/starter_web/_data/modules/masonry.yml +65 -0
  42. data/lib/starter_web/_data/modules/navigator_menu.yml +1 -1
  43. data/lib/starter_web/_data/plugins/defaults/seo-tags.yml +2 -2
  44. data/lib/starter_web/_data/plugins/seo-tags.yml +1 -1
  45. data/lib/starter_web/_data/resources.yml +26 -3
  46. data/lib/starter_web/_data/templates/feed.xml +5 -3
  47. data/lib/starter_web/_data/templates/robots.txt +26 -0
  48. data/lib/starter_web/_data/templates/seo-tags.html +18 -0
  49. data/lib/starter_web/_data/templates/sitemap.xml +29 -0
  50. data/lib/starter_web/_plugins/index/lunr.rb +25 -3
  51. data/lib/starter_web/_plugins/seo/j1-feed.rb +11 -9
  52. data/lib/starter_web/_plugins/seo/j1-seo-tags.rb +54 -57
  53. data/lib/starter_web/_plugins/seo/j1-sitemap.rb +5 -4
  54. data/lib/starter_web/assets/images/modules/attics/1920x1280/hayden-mills-2.jpg +0 -0
  55. data/lib/starter_web/assets/images/modules/attics/ideas-start-here-1920x1280.jpg +0 -0
  56. data/lib/starter_web/assets/images/triangles-bg.png +0 -0
  57. data/lib/starter_web/assets/videos/gallery/dailymotion/meditation.jpg +0 -0
  58. data/lib/starter_web/assets/videos/gallery/dailymotion/pilates.jpg +0 -0
  59. data/lib/starter_web/assets/videos/gallery/html5/video1.mp4 +0 -0
  60. data/lib/starter_web/assets/videos/gallery/html5/video2.mp4 +0 -0
  61. data/lib/starter_web/assets/videos/gallery/kick-it-old-school-poster.jpg +0 -0
  62. data/lib/starter_web/assets/videos/gallery/nye-party-shop-poster.jpg +0 -0
  63. data/lib/starter_web/assets/videos/gallery/stay-colorful-poster.jpg +0 -0
  64. data/lib/starter_web/assets/videos/gallery/video1-poster.jpg +0 -0
  65. data/lib/starter_web/assets/videos/gallery/video1-thumb.jpg +0 -0
  66. data/lib/starter_web/assets/videos/gallery/video2-poster.jpg +0 -0
  67. data/lib/starter_web/assets/videos/gallery/video2-thumb.jpg +0 -0
  68. data/lib/starter_web/assets/videos/gallery/video_adele-poster.jpg +0 -0
  69. data/lib/starter_web/assets/videos/gallery/video_gaga-poster.jpg +0 -0
  70. data/lib/starter_web/assets/videos/gallery/video_gwen-poster.jpg +0 -0
  71. data/lib/starter_web/assets/videos/gallery/video_michelle-poster.jpg +0 -0
  72. data/lib/starter_web/assets/videos/gallery/vk/hai.jpg +0 -0
  73. data/lib/starter_web/assets/videos/gallery/vk/otter.jpg +0 -0
  74. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/battle.jpg +0 -0
  75. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/ben.jpg +0 -0
  76. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/constance.jpg +0 -0
  77. data/lib/starter_web/assets/videos/gallery/voice_kids_de_2021/elisa.jpg +0 -0
  78. data/lib/starter_web/assets/videos/headers/present_videos/still/underground-broadway.jpg +0 -0
  79. data/lib/starter_web/assets/videos/headers/present_videos/underground-broadway.mp4 +0 -0
  80. data/lib/starter_web/assets/videos/tiktok/einhorn.jpg +0 -0
  81. data/lib/starter_web/assets/videos/tiktok/waluschka.jpg +0 -0
  82. data/lib/starter_web/package.json +1 -1
  83. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_bootstrap.asciidoc +51 -51
  84. data/lib/starter_web/pages/public/learn/roundtrip/_includes/documents/themes_rouge.asciidoc +110 -110
  85. data/lib/starter_web/utilsrv/_defaults/package.json +1 -1
  86. data/lib/starter_web/utilsrv/package.json +1 -1
  87. metadata +43 -9
  88. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v3.3.92/eot/materialdesignicons-webfont.eot +0 -0
  89. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v3.3.92/materialdesignicons-webfont.woff +0 -0
  90. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v3.3.92/materialdesignicons-webfont.woff2 +0 -0
  91. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v3.3.92/svg/materialdesignicons-webfont.svg +0 -10188
  92. data/assets/themes/j1/core/fonts/material_design_icons/fonts/_versions/v3.3.92/ttf/materialdesignicons-webfont.ttf +0 -0
  93. data/assets/themes/j1/core/fonts/material_design_icons/fonts/svg/materialdesignicons-webfont.svg +0 -10188
@@ -1,3 +1,21 @@
1
+ {% comment %}
2
+ # -----------------------------------------------------------------------------
3
+ # ~/_data/templates/seo-tags.html
4
+ # Liquid template to create the HTML portion for the seo-tags plugin
5
+ #
6
+ # Product/Info:
7
+ # https://jekyll.one
8
+ #
9
+ # Copyright (C) 2022 Juergen Adams
10
+ #
11
+ # J1 Template is licensed under the MIT License.
12
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
13
+ # -----------------------------------------------------------------------------
14
+ # Test data:
15
+ # liquid_var: {{ liquid_var | debug }}
16
+ # -----------------------------------------------------------------------------
17
+ {% endcomment %}
18
+
1
19
  <!-- Begin J1 SEO tags -->
2
20
 
3
21
  {% if seo_tag.title? %}
@@ -1,3 +1,25 @@
1
+ {% capture cache %}
2
+
3
+ {% comment %}
4
+ # -----------------------------------------------------------------------------
5
+ # ~/_data/templates/sitemap.xml
6
+ # Liquid template to generate the sitemap XML entries
7
+ #
8
+ # Product/Info:
9
+ # https://jekyll.one
10
+ #
11
+ # Copyright (C) 2022 Juergen Adams
12
+ #
13
+ # J1 Template is licensed under the MIT License.
14
+ # See: https://github.com/jekyll-one-org/J1 Template/blob/master/LICENSE
15
+ # -----------------------------------------------------------------------------
16
+ # Test data:
17
+ # liquid_var: {{ liquid_var | debug }}
18
+ # -----------------------------------------------------------------------------
19
+ {% endcomment %}
20
+
21
+ {% comment %} main
22
+ -------------------------------------------------------------------------------- {% endcomment %}
1
23
  <?xml version="1.0" encoding="UTF-8"?>
2
24
  {% if page.xsl %}
3
25
  <?xml-stylesheet type="text/xsl" href="{{ "/sitemap.xsl" | absolute_url }}"?>
@@ -34,3 +56,10 @@
34
56
  </url>
35
57
  {% endfor %}
36
58
  </urlset>
59
+
60
+ {% endcapture %}
61
+
62
+
63
+ {% comment %} POST processing of the generated feed XML file|s
64
+ -------------------------------------------------------------------------------- {% endcomment %}
65
+ {{ cache }}
@@ -109,6 +109,14 @@ module Jekyll
109
109
  rebuild = @module_config['rebuild']
110
110
  index_file = index_dest + @module_config['index_file']
111
111
 
112
+ if plugin_disabled?
113
+ Jekyll.logger.info 'J1 Lunr:', 'disabled'
114
+ return
115
+ else
116
+ Jekyll.logger.info 'J1 Lunr:', 'enabled'
117
+ Jekyll.logger.info 'J1 Lunr:', 'generate search index'
118
+ end
119
+
112
120
  if @module_config['rebuild'] == false
113
121
  if File.exist?(index_file)
114
122
  Jekyll.logger.info 'J1 Lunr:', 'rebuild index disabled'
@@ -119,8 +127,6 @@ module Jekyll
119
127
  end
120
128
  end
121
129
 
122
- Jekyll.logger.info 'J1 Lunr:', 'generate search index'
123
-
124
130
  # gather posts and pages
125
131
  #
126
132
  items = pages_to_index(site)
@@ -197,6 +203,22 @@ module Jekyll
197
203
 
198
204
  private
199
205
 
206
+ # Returns the plugin's config or an empty hash if not set
207
+ #
208
+ def config
209
+ @config ||= @module_config || {}
210
+ end
211
+
212
+ # Check if plugin is enabled|disabled
213
+ #
214
+ def plugin_disabled?
215
+ if config['enabled']
216
+ false
217
+ else
218
+ true
219
+ end
220
+ end
221
+
200
222
  # load the stopwords (file)
201
223
  #
202
224
  def stopwords
@@ -372,6 +394,6 @@ end
372
394
 
373
395
  module Jekyll
374
396
  module J1LunrSearch
375
- VERSION = '2022.6.1'
397
+ VERSION = '2022.6.3'
376
398
  end
377
399
  end
@@ -45,29 +45,31 @@ module J1Feed
45
45
  @feed_output = @module_config['feed_output']
46
46
 
47
47
  if disabled_in_development?
48
- Jekyll.logger.info "J1 Feed:", "generate feed skipped in mode development"
48
+ Jekyll.logger.info "J1 Feeds:", "skipped in mode development"
49
49
  return
50
50
  end
51
51
 
52
52
  if plugin_disabled?
53
- Jekyll.logger.info "J1 Feed:", "generate feed: disabled"
53
+ Jekyll.logger.info "J1 Feeds:", "disabled"
54
54
  return
55
+ else
56
+ Jekyll.logger.info "J1 Feeds:", "enabled"
55
57
  end
56
58
 
57
59
  if @module_config['excerpt_only']
58
- Jekyll.logger.info "J1 Feed:", "generate feed for: excerpts only"
60
+ Jekyll.logger.info "J1 Feeds:", "generate rss feeds for: excerpts only"
59
61
  end
60
62
 
61
63
  if @module_config['posts_limit'] < 100
62
- Jekyll.logger.info "J1 Feed:", "generate feed for: #posts of #{@module_config['posts_limit']}"
64
+ Jekyll.logger.info "J1 Feeds:", "generate rss feeds for: #posts of #{@module_config['posts_limit']}"
63
65
  else
64
- Jekyll.logger.info "J1 Feed:", "generate feed for: #posts of unlimited"
66
+ Jekyll.logger.info "J1 Feeds:", "generate rss feeds for: #posts of unlimited"
65
67
  end
66
68
 
67
69
  collections.each do |name, meta|
68
- Jekyll.logger.info "J1 Feed:", "generate feed for: all #{name}"
70
+ Jekyll.logger.info "J1 Feeds:", "generate rss feeds for: all #{name}"
69
71
  (meta["categories"] + [nil]).each do |category|
70
- Jekyll.logger.info "J1 Feed:", "generate feed for posts by category: #{category}" if category
72
+ Jekyll.logger.info "J1 Feeds:", "generate rss feeds for posts by category: #{category}" if category
71
73
  path = feed_path(:collection => name, :category => category)
72
74
 
73
75
  # rebuild the feed xml file?
@@ -75,7 +77,7 @@ module J1Feed
75
77
  unless @module_config['rebuild_feeds']
76
78
  path = feed_path(:collection => name, :category => category)
77
79
  if file_exists?(path)
78
- Jekyll.logger.info "J1 Feed:", "feed already exist, skip rebuild"
80
+ Jekyll.logger.info "J1 Feeds:", "feed already exist, skip rebuild"
79
81
  next
80
82
  end
81
83
  end
@@ -164,7 +166,7 @@ module J1Feed
164
166
  # next if %r![^a-zA-Z0-9_]!.match?(tag)
165
167
  next if %r!\W!.match?(tag)
166
168
 
167
- Jekyll.logger.info "J1 Feed:", "generate feed for posts by tag: #{tag}" if tag
169
+ Jekyll.logger.info "J1 Feeds:", "generate rss feeds for posts by tag: #{tag}" if tag
168
170
  path = "#{tags_path}#{tag.downcase}.xml"
169
171
  next if file_exists?(path)
170
172
 
@@ -16,6 +16,59 @@
16
16
  require "jekyll"
17
17
 
18
18
  module Jekyll
19
+
20
+ class J1SeoTag < Jekyll::Generator
21
+ safe true
22
+ priority :lowest
23
+
24
+ # Main plugin action, called by Jekyll-core
25
+ def generate(site)
26
+ @site = site
27
+
28
+ @mode = site.config['environment']
29
+ @template = site.config['theme']
30
+
31
+ @project_path = File.join(File.dirname(__FILE__)).sub('_plugins/seo', '')
32
+ @module_data_path = File.join(File.join(@project_path, '_data'))
33
+ @module_config_path = File.join(File.join(@module_data_path, 'plugins'))
34
+ @module_template_path = File.join(File.join(@module_data_path, 'templates'))
35
+ @module_config_default = YAML::load(File.open(File.join(@module_config_path, 'defaults', 'seo-tags.yml')))
36
+ @module_config_user = YAML::load(File.open(File.join(@module_config_path, 'seo-tags.yml')))
37
+
38
+ @module_config_default_settings = @module_config_default['defaults']
39
+ @module_config_user_settings = @module_config_user['settings']
40
+ @module_config = @module_config_default_settings.merge!(@module_config_user_settings)
41
+
42
+ if plugin_disabled?
43
+ Jekyll.logger.info "J1 Seo:", "disabled"
44
+ return
45
+ else
46
+ Jekyll.logger.info "J1 Seo:", "enabled"
47
+ Jekyll.logger.info "J1 Seo:", "generate seo tags"
48
+ end
49
+
50
+ end
51
+
52
+ private
53
+
54
+ # Returns the plugin's config or an empty hash if not set
55
+ #
56
+ def config
57
+ @config ||= @module_config || {}
58
+ end
59
+
60
+ # Check if plugin is enabled|disabled
61
+ #
62
+ def plugin_disabled?
63
+ if config['enabled']
64
+ false
65
+ else
66
+ true
67
+ end
68
+ end
69
+
70
+ end
71
+
19
72
  class SeoTag < Liquid::Tag
20
73
  attr_accessor :context
21
74
 
@@ -102,6 +155,7 @@ module Jekyll
102
155
  end
103
156
 
104
157
  end
158
+
105
159
  end
106
160
 
107
161
  Liquid::Template.register_tag("seo", Jekyll::SeoTag)
@@ -198,7 +252,6 @@ module Jekyll
198
252
  end
199
253
  end
200
254
 
201
-
202
255
  module Jekyll
203
256
  class SeoTag
204
257
 
@@ -463,7 +516,6 @@ module Jekyll
463
516
  end
464
517
  end
465
518
 
466
-
467
519
  module Jekyll
468
520
  class SeoTag
469
521
  class Filters
@@ -477,7 +529,6 @@ module Jekyll
477
529
  end
478
530
  end
479
531
 
480
-
481
532
  module Jekyll
482
533
  class SeoTag
483
534
  # A drop representing the page image
@@ -559,7 +610,6 @@ module Jekyll
559
610
  end
560
611
  end
561
612
 
562
-
563
613
  module Jekyll
564
614
  class SeoTag
565
615
  class JSONLDDrop < Jekyll::Drops::Drop
@@ -662,56 +712,3 @@ module Jekyll
662
712
  end
663
713
  end
664
714
  end
665
-
666
- # module Jekyll
667
- # class SeoTag
668
- # # This module is deprecated, but is included in the Gem to avoid a breaking
669
- # # change and should be removed at the next major version bump
670
- # module JSONLD
671
- # METHODS_KEYS = {
672
- # :json_context => "@context",
673
- # :type => "@type",
674
- # :name => "name",
675
- # :page_title => "headline",
676
- # :json_author => "author",
677
- # :json_image => "image",
678
- # :date_published => "datePublished",
679
- # :date_modified => "dateModified",
680
- # :description => "description",
681
- # :publisher => "publisher",
682
- # :main_entity => "mainEntityOfPage",
683
- # :links => "sameAs",
684
- # :canonical_url => "url",
685
- # }.freeze
686
- #
687
- # # Self should be a Jekyll::SeoTag::Drop instance (when extending the module)
688
- # def json_ld
689
- # Jekyll.logger.warn "Jekyll::SeoTag::JSONLD is deprecated"
690
- # @json_ld ||= JSONLDDrop.new(self)
691
- # end
692
- # end
693
- # end
694
- # end
695
-
696
-
697
- # module Jekyll
698
- # class SeoTag
699
- # # Mixin to share common URL-related methods between class
700
- # module UrlHelper
701
- # private
702
- #
703
- # # Determines if the given string is an absolute URL
704
- # #
705
- # # Returns true if an absolute URL
706
- # # Returns false if it's a relative URL
707
- # # Returns nil if it is not a string or can't be parsed as a URL
708
- # def absolute_url?(string)
709
- # return unless string
710
- #
711
- # Addressable::URI.parse(string).absolute?
712
- # rescue Addressable::URI::InvalidURIError
713
- # nil
714
- # end
715
- # end
716
- # end
717
- # end
@@ -45,12 +45,13 @@ module Jekyll
45
45
  @sitemap_source_path ||= File.expand_path @sitemap_template_name, @template_source_folder
46
46
 
47
47
  if plugin_disabled?
48
- Jekyll.logger.info "J1 Sitemap:", "generate sitemap files: disabled"
48
+ Jekyll.logger.info "J1 Sitemap:", "disabled"
49
49
  return
50
+ else
51
+ Jekyll.logger.info "J1 Sitemap:", "enabled"
52
+ Jekyll.logger.info "J1 Sitemap:", "generate sitemap files"
50
53
  end
51
-
52
- Jekyll.logger.info "J1 Sitemap:", "generate map files"
53
-
54
+
54
55
  @site.pages << sitemap unless file_exists?("sitemap.xml")
55
56
  @site.pages << robots unless file_exists?("robots.txt")
56
57
  end
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "private": true,
3
3
  "name": "j1",
4
- "version": "2022.6.1",
4
+ "version": "2022.6.3",
5
5
  "description": "J1 Template Starter Web",
6
6
  "homepage": "https://your.site",
7
7
  "author": {
@@ -1,51 +1,51 @@
1
- == The Themes Menu
2
-
3
- Themes adjust the website's appearance based on the core CSS rules and
4
- definitions of Bootstrap. Themes do not change the framework's functionality
5
- but modify rule-based, e.g., the color scheme, fonts, sizes, or the
6
- appearance of more complex elements like forms or tables. Additionally, a
7
- theme may add additional components to extend the Bootstrap's framework.
8
-
9
- Modifying the CSS styles of link:{url-bs--home}[Bootstrap, {browser-window--new}]
10
- is not rocket science. But, to be honest, some knowledge is needed for
11
- link:{url-w3org--css-spec}[the CSS technology, {browser-window--new}] to do so.
12
- We encourage you to spend some time first on learning CSS. To learn what is the
13
- link:{url-w3schools--css-tutorial}[design base, {browser-window--new}] of each
14
- and every website.
15
-
16
- .Themes menu
17
- lightbox::images--themes-menu[ 1280, {data-images--themes-menu} ]
18
-
19
- Thanks to the people at link:{url-bootswatch--home}[Bootswatch, {browser-window--new}],
20
- a great set of already prepared Bootstrap stylesheets in various designs are
21
- available on their website. There is no need to start from scratch. It is not
22
- needed to re-define all the Bootstrap variables, and rebuild the framework
23
- files to create a new theme. Many different styles are available. What is
24
- already available at Bootswatch is at least a good base for your modifications;
25
- your unique design.
26
-
27
- Besides the bunch of different stylesheets at Bootswatch, an
28
- link:{url-bootswatch--api}[Integration API, {browser-window--new}] is provided
29
- that helps a lot to integrate available designs into an existing site. This API
30
- is the base to integrate selectable Bootswatch stylesheets into the J1 Template
31
- navigation system for easy use.
32
-
33
- === Apply a theme
34
-
35
- The base for designing pages using the J1 Template is the theme Uno, a modern
36
- light theme used for many types of websites. And what we mentioned
37
- already, web design is not: one size fits all. The theme Uno can be seen as
38
- a good base, a starting point. Combining Uno and a different theme may be a fast
39
- solution for your site!?
40
-
41
- You can find all available themes and stylesheets on your pages
42
- from the menu Themes. You're invited to check how a page is changing for
43
- its design if other stylesheets, other ideas of web design are used.
44
-
45
- TIP: Changing BS-based styles is one thing. Changing from one theme to the
46
- next at runtime is a bit more challenging. For the first version of the J1
47
- Template, many styles are automatically changed for J1 specific components,
48
- but not all of them for now.
49
-
50
- Select a theme from this menu, and a new BS-based stylesheet is automatically
51
- applied to your pages.
1
+ == The Themes Menu
2
+
3
+ Themes adjust the website's appearance based on the core CSS rules and
4
+ definitions of Bootstrap. Themes do not change the framework's functionality
5
+ but modify rule-based, e.g., the color scheme, fonts, sizes, or the
6
+ appearance of more complex elements like forms or tables. Additionally, a
7
+ theme may add additional components to extend the Bootstrap's framework.
8
+
9
+ Modifying the CSS styles of link:{url-bs--home}[Bootstrap, {browser-window--new}]
10
+ is not rocket science. But, to be honest, some knowledge is needed for
11
+ link:{url-w3org--css-spec}[the CSS technology, {browser-window--new}] to do so.
12
+ We encourage you to spend some time first on learning CSS. To learn what is the
13
+ link:{url-w3schools--css-tutorial}[design base, {browser-window--new}] of each
14
+ and every website.
15
+
16
+ .Themes menu
17
+ lightbox::images--themes-menu[ 1280, {data-images--themes-menu} ]
18
+
19
+ Thanks to the people at link:{url-bootswatch--home}[Bootswatch, {browser-window--new}],
20
+ a great set of already prepared Bootstrap stylesheets in various designs are
21
+ available on their website. There is no need to start from scratch. It is not
22
+ needed to re-define all the Bootstrap variables, and rebuild the framework
23
+ files to create a new theme. Many different styles are available. What is
24
+ already available at Bootswatch is at least a good base for your modifications;
25
+ your unique design.
26
+
27
+ Besides the bunch of different stylesheets at Bootswatch, an
28
+ link:{url-bootswatch--api}[Integration API, {browser-window--new}] is provided
29
+ that helps a lot to integrate available designs into an existing site. This API
30
+ is the base to integrate selectable Bootswatch stylesheets into the J1 Template
31
+ navigation system for easy use.
32
+
33
+ === Apply a theme
34
+
35
+ The base for designing pages using the J1 Template is the theme Uno, a modern
36
+ light theme used for many types of websites. And what we mentioned
37
+ already, web design is not: one size fits all. The theme Uno can be seen as
38
+ a good base, a starting point. Combining Uno and a different theme may be a fast
39
+ solution for your site!?
40
+
41
+ You can find all available themes and stylesheets on your pages
42
+ from the menu Themes. You're invited to check how a page is changing for
43
+ its design if other stylesheets, other ideas of web design are used.
44
+
45
+ TIP: Changing BS-based styles is one thing. Changing from one theme to the
46
+ next at runtime is a bit more challenging. For the first version of the J1
47
+ Template, many styles are automatically changed for J1 specific components,
48
+ but not all of them for now.
49
+
50
+ Select a theme from this menu, and a new BS-based stylesheet is automatically
51
+ applied to your pages.