tessellate 0.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 +7 -0
- data/LICENSE +21 -0
- data/README.md +120 -0
- data/_config.yml +24 -0
- data/_includes/contact_form.html +42 -0
- data/_includes/footer.html +31 -0
- data/_includes/header.html +40 -0
- data/_layouts/page.html +35 -0
- data/_layouts/section_one.html +39 -0
- data/_layouts/section_three.html +36 -0
- data/_layouts/section_two.html +44 -0
- data/assets/css/fontawesome-all.min.css +9 -0
- data/assets/css/images/arrow.svg +4 -0
- data/assets/css/images/bgbl.svg +21 -0
- data/assets/css/images/bgtr.svg +21 -0
- data/assets/css/images/dark-arrow.svg +4 -0
- data/assets/css/images/ie/content-style1.svg +10 -0
- data/assets/css/images/ie/content-style2.svg +10 -0
- data/assets/css/images/ie/content-style3.svg +10 -0
- data/assets/css/images/overlay.png +0 -0
- data/assets/css/main.css +1524 -0
- data/assets/js/breakpoints.min.js +2 -0
- data/assets/js/browser.min.js +2 -0
- data/assets/js/jquery.min.js +2 -0
- data/assets/js/jquery.scrolly.min.js +2 -0
- data/assets/js/main.js +30 -0
- data/assets/js/util.js +587 -0
- data/assets/sass/libs/_breakpoints.scss +223 -0
- data/assets/sass/libs/_functions.scss +90 -0
- data/assets/sass/libs/_html-grid.scss +149 -0
- data/assets/sass/libs/_mixins.scss +78 -0
- data/assets/sass/libs/_vars.scss +22 -0
- data/assets/sass/libs/_vendor.scss +376 -0
- data/assets/sass/main.scss +1274 -0
- data/assets/webfonts/fa-brands-400.eot +0 -0
- data/assets/webfonts/fa-brands-400.svg +3717 -0
- data/assets/webfonts/fa-brands-400.ttf +0 -0
- data/assets/webfonts/fa-brands-400.woff +0 -0
- data/assets/webfonts/fa-brands-400.woff2 +0 -0
- data/assets/webfonts/fa-regular-400.eot +0 -0
- data/assets/webfonts/fa-regular-400.svg +801 -0
- data/assets/webfonts/fa-regular-400.ttf +0 -0
- data/assets/webfonts/fa-regular-400.woff +0 -0
- data/assets/webfonts/fa-regular-400.woff2 +0 -0
- data/assets/webfonts/fa-solid-900.eot +0 -0
- data/assets/webfonts/fa-solid-900.svg +5034 -0
- data/assets/webfonts/fa-solid-900.ttf +0 -0
- data/assets/webfonts/fa-solid-900.woff +0 -0
- data/assets/webfonts/fa-solid-900.woff2 +0 -0
- data/assets/webfonts/fa-v4compatibility.ttf +0 -0
- data/assets/webfonts/fa-v4compatibility.woff2 +0 -0
- metadata +107 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 98c460f94f2e79dada356dd2f6b6f8f5fb23e4182f3daa61909418af680c3885
|
4
|
+
data.tar.gz: 1cf8caa690838210fb2c6b6d8c57358eec5eebdc398913e877f5fff07f59ca15
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 19b59b08698b396cb1b9a7bb4abdf69256e8bc517fc6ce8f3b790660ce5a3933c27afaf603b1c446f5f197d15cd032a36ffdfa8aabad5b5e5148830afb378dfd
|
7
|
+
data.tar.gz: 6c29fb13787e482773067f591b80247e947e97937d5b52bb027cadbc1ce945af3b3c608cfc9ef05d9348d6017a40ff377df5b8587d18bf6b4b33d164f3f6035d
|
data/LICENSE
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
MIT License
|
2
|
+
|
3
|
+
Copyright (c) 2025 Preston Hager
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
13
|
+
copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
21
|
+
SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,120 @@
|
|
1
|
+
# tessellate
|
2
|
+
|
3
|
+
Tessellate theme based on [HTML5 UP's Tessellate template][0].
|
4
|
+
Aimed at sectioned content allowing for a wide range of layouts.
|
5
|
+
|
6
|
+
## Installation
|
7
|
+
|
8
|
+
Add this line to your Jekyll site's `Gemfile`:
|
9
|
+
|
10
|
+
```ruby
|
11
|
+
gem "tessellate"
|
12
|
+
```
|
13
|
+
|
14
|
+
And add this line to your Jekyll site's `_config.yml`:
|
15
|
+
|
16
|
+
```yaml
|
17
|
+
theme: tessellate
|
18
|
+
```
|
19
|
+
|
20
|
+
And then execute:
|
21
|
+
|
22
|
+
$ bundle
|
23
|
+
|
24
|
+
Or install it yourself as:
|
25
|
+
|
26
|
+
$ gem install tessellate
|
27
|
+
|
28
|
+
## Usage
|
29
|
+
|
30
|
+
TODO: Write usage instructions here. Describe your available layouts, includes, sass and/or assets.
|
31
|
+
|
32
|
+
The basic layout is `page`, it takes a `header` and `cta` parameter.
|
33
|
+
|
34
|
+
```yaml
|
35
|
+
---
|
36
|
+
layout: page
|
37
|
+
header:
|
38
|
+
background_image: /assets/images/cover.jpg
|
39
|
+
title: "Tessellate"
|
40
|
+
subtitle: |
|
41
|
+
A Jekyll theme based on <a href="https://html5up.net/tessellate">HTML5 UP's Tessellate template</a>
|
42
|
+
color: "#000"
|
43
|
+
cta:
|
44
|
+
link: "#first"
|
45
|
+
text: "Get Started"
|
46
|
+
---
|
47
|
+
```
|
48
|
+
|
49
|
+
Every subview then takes a `header` and `cta` parameter.
|
50
|
+
Both parameters are optional.
|
51
|
+
If not included, the header/link will be hidden.
|
52
|
+
|
53
|
+
Define subviews in a seperate file such as `index_section_one.md`.
|
54
|
+
The layout is then whatever section layout you want to use.
|
55
|
+
The theme comes with sections one, two, and three.
|
56
|
+
For example, to define a section one on the index page use:
|
57
|
+
|
58
|
+
```yaml
|
59
|
+
---
|
60
|
+
layout: section_one
|
61
|
+
header:
|
62
|
+
title: "Section One"
|
63
|
+
cta:
|
64
|
+
link: "#second"
|
65
|
+
text: "Learn More"
|
66
|
+
---
|
67
|
+
|
68
|
+
The section content goes here.
|
69
|
+
```
|
70
|
+
|
71
|
+
Finally, we must include it in the main `index.md` page using the `subview`
|
72
|
+
liquid tag.
|
73
|
+
|
74
|
+
```liquid
|
75
|
+
---
|
76
|
+
Front matter goes here...
|
77
|
+
---
|
78
|
+
|
79
|
+
{% subview index_section_one.md %}
|
80
|
+
{% subview index_section_two.md %}
|
81
|
+
{% subview index_section_three.md %}
|
82
|
+
```
|
83
|
+
|
84
|
+
## Customization
|
85
|
+
|
86
|
+
TODO: Write customization instructions here. Describe any available variables,
|
87
|
+
layout options, and/or custom URL options.
|
88
|
+
|
89
|
+
## Contributing
|
90
|
+
|
91
|
+
Bug reports and pull requests are welcome on GitHub at
|
92
|
+
https://github.com/PrestonHager/tessellate. This project is intended to be a
|
93
|
+
safe, welcoming space for collaboration, and contributors are expected to adhere
|
94
|
+
to the [Contributor Covenant](https://www.contributor-covenant.org/) code of
|
95
|
+
conduct.
|
96
|
+
|
97
|
+
## Development
|
98
|
+
|
99
|
+
To set up your environment to develop this theme, run `bundle install`.
|
100
|
+
|
101
|
+
Your theme is setup just like a normal Jekyll site! To test your theme, run
|
102
|
+
`bundle exec jekyll serve` and open your browser at `http://localhost:4000`.
|
103
|
+
This starts a Jekyll server using your theme. Add pages, documents, data, etc.
|
104
|
+
like normal to test your theme's contents. As you make modifications to your
|
105
|
+
theme and to your content, your site will regenerate and you should see the
|
106
|
+
changes in the browser after a refresh, just like normal.
|
107
|
+
|
108
|
+
When your theme is released, only the files in `_layouts`, `_includes`, `_sass`
|
109
|
+
and `assets` tracked with Git will be bundled.
|
110
|
+
To add a custom directory to your theme-gem, please edit the regexp in
|
111
|
+
`tessellate.gemspec` accordingly.
|
112
|
+
|
113
|
+
## License
|
114
|
+
|
115
|
+
The theme is available as open source under the terms of the [MIT
|
116
|
+
License](https://opensource.org/licenses/MIT).
|
117
|
+
|
118
|
+
|
119
|
+
[0]: https://html5up.net/tessellate
|
120
|
+
|
data/_config.yml
ADDED
@@ -0,0 +1,24 @@
|
|
1
|
+
# This config file loads the defaults for this theme.
|
2
|
+
# You may override any of these values in your own config file.
|
3
|
+
|
4
|
+
# Site Socials appear in the footer of the site
|
5
|
+
# Overwrite the entire default by adding the `socials` key to your config file
|
6
|
+
# Each social should have a `name` and `link` attribute, then the default icon
|
7
|
+
# will be pulled from Font Awesome. You may override the icon with the `icon`
|
8
|
+
# attribute with an image URL, or the `icon_class` attribute with a Font Awesome
|
9
|
+
# class name.
|
10
|
+
socials:
|
11
|
+
- name: Twitter
|
12
|
+
link: https://twitter.com
|
13
|
+
- name: Facebook
|
14
|
+
link: https://facebook.com
|
15
|
+
icon_class: fa-facebook-f
|
16
|
+
- name: Instagram
|
17
|
+
link: https://instagram.com
|
18
|
+
- name: Dribbble
|
19
|
+
link: https://dribbble.com
|
20
|
+
- name: GitHub
|
21
|
+
link: https://github.com
|
22
|
+
|
23
|
+
copyright: '© 2025. All rights reserved.'
|
24
|
+
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<!-- Contact form
|
2
|
+
Check out formspree for an easy way to get forms!
|
3
|
+
Setup a new form and then include the contact form with the form_id!
|
4
|
+
|
5
|
+
{% comment %}
|
6
|
+
|
7
|
+
{% include contact_form.html form_id="yourFormIDHere" %}
|
8
|
+
|
9
|
+
{% endcomment %}
|
10
|
+
-->
|
11
|
+
<section id="fourth" class="main">
|
12
|
+
<header>
|
13
|
+
<div class="container">
|
14
|
+
<h2>{{ include.section_title }}</h2>
|
15
|
+
<p>{{ include.section_body }}</p>
|
16
|
+
</div>
|
17
|
+
</header>
|
18
|
+
<div class="content style4 featured">
|
19
|
+
<div class="container medium">
|
20
|
+
<form method="post" action="https://formspree.io/f/{{ include.form_id }}">
|
21
|
+
<div class="row gtr-50">
|
22
|
+
<div class="col-6 col-12-mobile">
|
23
|
+
<input type="text" placeholder="Name" name="name" />
|
24
|
+
</div>
|
25
|
+
<div class="col-6 col-12-mobile">
|
26
|
+
<input type="text" placeholder="Email" name="email" />
|
27
|
+
</div>
|
28
|
+
<div class="col-12">
|
29
|
+
<textarea name="message" placeholder="Message"></textarea>
|
30
|
+
</div>
|
31
|
+
<div class="col-12">
|
32
|
+
<ul class="actions special">
|
33
|
+
<li><input type="submit" class="button" value="Send Message" /></li>
|
34
|
+
<li><input type="reset" class="button alt" value="Clear Form" /></li>
|
35
|
+
</ul>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</form>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
</section>
|
42
|
+
|
@@ -0,0 +1,31 @@
|
|
1
|
+
<!-- Footer section
|
2
|
+
-->
|
3
|
+
<section id="footer">
|
4
|
+
<ul class="icons">
|
5
|
+
{% for social in site.socials %}
|
6
|
+
<li>
|
7
|
+
<a
|
8
|
+
href="{{ social.link }}"
|
9
|
+
class="icon brands fa-brands {% if social.icon %}{% elsif social.icon_class %}{{ social.icon_class }}{% else %}fa-{{ social.name | downcase }}{% endif %}"
|
10
|
+
{% if social.icon %}
|
11
|
+
style="background-image: url({{ social.icon }})"
|
12
|
+
{% endif %}
|
13
|
+
>
|
14
|
+
<span class="label">{{ social.name }}</span>
|
15
|
+
</a>
|
16
|
+
</li>
|
17
|
+
{% endfor %}
|
18
|
+
</ul>
|
19
|
+
<div class="copyright">
|
20
|
+
<ul class="menu">
|
21
|
+
{% if site.copyright %}
|
22
|
+
{% assign copyright = site.copyright %}
|
23
|
+
{% else %}
|
24
|
+
{% assign copyright = site.time | date: "%Y" | prepend: "Untitled " %}
|
25
|
+
{% endif %}
|
26
|
+
<li>© {{ copyright }}. </li>
|
27
|
+
<li>Design: <a href="http://html5up.net">HTML5 UP</a></li>
|
28
|
+
</ul>
|
29
|
+
</div>
|
30
|
+
</section>
|
31
|
+
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<!-- Header include for image and CTA
|
2
|
+
header:
|
3
|
+
title: Title Goes Here
|
4
|
+
subtitle: A short sentence for a subtitle
|
5
|
+
cta:
|
6
|
+
link: #first
|
7
|
+
text: Proceed to #first element
|
8
|
+
-->
|
9
|
+
<section id="header" class="dark"
|
10
|
+
{% if include.header.background_image %}
|
11
|
+
style="background-image:{{ include.header.background_image }};"
|
12
|
+
{% else if include.header.background %}
|
13
|
+
style="background:{{ include.header.background }};"
|
14
|
+
{% endif %}
|
15
|
+
>
|
16
|
+
<header>
|
17
|
+
<h1
|
18
|
+
{% if include.header.color %}
|
19
|
+
style="color: {{ include.header.color }}"
|
20
|
+
{% endif %}
|
21
|
+
>{{ include.header.title }}</h1>
|
22
|
+
<p
|
23
|
+
{% if include.header.color %}
|
24
|
+
style="color: {{ include.header.color }}"
|
25
|
+
{% endif %}
|
26
|
+
>{{ include.header.subtitle }}</p>
|
27
|
+
</header>
|
28
|
+
{% if include.cta %}
|
29
|
+
<footer>
|
30
|
+
<a
|
31
|
+
href="{{ include.cta.link }}"
|
32
|
+
class="button scrolly"
|
33
|
+
{% if include.header.color %}
|
34
|
+
style="color: {{ include.header.color }}; border: 1px solid {{ include.header.color }}"
|
35
|
+
{% endif %}
|
36
|
+
>{{ include.cta.text }}</a>
|
37
|
+
</footer>
|
38
|
+
{% endif %}
|
39
|
+
</section>
|
40
|
+
|
data/_layouts/page.html
ADDED
@@ -0,0 +1,35 @@
|
|
1
|
+
<!DOCTYPE HTML>
|
2
|
+
<!--
|
3
|
+
Tessellate Jekyll theme based on
|
4
|
+
Tessellate by HTML5 UP
|
5
|
+
html5up.net | @ajlkn
|
6
|
+
Free for personal and commercial use under the CCA 3.0 license (html5up.net/license)
|
7
|
+
-->
|
8
|
+
<html>
|
9
|
+
<head>
|
10
|
+
<title>{{ title }}</title>
|
11
|
+
<meta charset="utf-8" />
|
12
|
+
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no" />
|
13
|
+
<link rel="stylesheet" href="/assets/css/main.css" />
|
14
|
+
</head>
|
15
|
+
<body class="is-preload">
|
16
|
+
<!-- Header -->
|
17
|
+
{% include header.html
|
18
|
+
header=page.header
|
19
|
+
cta=page.cta
|
20
|
+
%}
|
21
|
+
<div class="content">
|
22
|
+
{{ content }}
|
23
|
+
</div>
|
24
|
+
{% include footer.html %}
|
25
|
+
<!-- Scripts -->
|
26
|
+
<script src="/assets/js/jquery.min.js"></script>
|
27
|
+
<script src="/assets/js/jquery.scrolly.min.js"></script>
|
28
|
+
<script src="/assets/js/browser.min.js"></script>
|
29
|
+
<script src="/assets/js/breakpoints.min.js"></script>
|
30
|
+
<script src="/assets/js/util.js"></script>
|
31
|
+
<script src="/assets/js/main.js"></script>
|
32
|
+
</body>
|
33
|
+
</html>
|
34
|
+
|
35
|
+
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<section id="first" class="main">
|
2
|
+
{% if page.header %}
|
3
|
+
<header>
|
4
|
+
<div class="container">
|
5
|
+
<h2>{{ page.header.title }}</h2>
|
6
|
+
<p>{{ page.header.body }}</p>
|
7
|
+
</div>
|
8
|
+
</header>
|
9
|
+
{% endif %}
|
10
|
+
<div class="content dark style1 featured">
|
11
|
+
{% assign content_split = page.content | markdown_split %}
|
12
|
+
<div class="container">
|
13
|
+
<div class="row">
|
14
|
+
{% for i in (0..2) %}
|
15
|
+
<div class="col-4 col-12-narrow">
|
16
|
+
<section>
|
17
|
+
<span class="feature-icon"><span class="icon solid fa-solid {% if page.icons[i]
|
18
|
+
%}{{ page.icons[i].icon }}{% else %}fa-clock{% endif %}"></span></span>
|
19
|
+
{% if page.icons[i].title %}
|
20
|
+
<header>
|
21
|
+
<h3>{{ page.icons[i].title }}</h3>
|
22
|
+
</header>
|
23
|
+
{% endif %}
|
24
|
+
<div>{{ content_split[i] | markdownify }}</div>
|
25
|
+
</section>
|
26
|
+
</div>
|
27
|
+
{% endfor %}
|
28
|
+
{% if page.cta %}
|
29
|
+
<div class="col-12">
|
30
|
+
<footer>
|
31
|
+
<a href="#{{ cta.link }}" class="button scrolly">{{ cta.text }}</a>
|
32
|
+
</footer>
|
33
|
+
</div>
|
34
|
+
{% endif %}
|
35
|
+
</div>
|
36
|
+
</div>
|
37
|
+
</div>
|
38
|
+
</section>
|
39
|
+
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<section id="third" class="main">
|
2
|
+
{% if page.header %}
|
3
|
+
<header>
|
4
|
+
<div class="container">
|
5
|
+
<h2>{{ page.header.title }}</h2>
|
6
|
+
<p>{{ page.header.body }}</p>
|
7
|
+
</div>
|
8
|
+
</header>
|
9
|
+
{% endif %}
|
10
|
+
<div class="content dark style3">
|
11
|
+
<div class="container">
|
12
|
+
<span class="image featured"><img src="images/pic07.jpg" alt="" /></span>
|
13
|
+
<div class="row">
|
14
|
+
{% assign content_body = page.content | split: " " %}
|
15
|
+
{% assign length = content_body | size %}
|
16
|
+
{% assign part_length = length | divided_by: 3 %}
|
17
|
+
{% assign part_length_double = part_length | times: 2 %}
|
18
|
+
<div class="col-4 col-12-narrow">
|
19
|
+
{{ content_body | slice: 0, part_length | join: " " | markdownify }}
|
20
|
+
</div>
|
21
|
+
<div class="col-4 col-12-narrow">
|
22
|
+
{{ content_body | slice: part_length, part_length | join: " " | markdownify }}
|
23
|
+
</div>
|
24
|
+
<div class="col-4 col-12-narrow">
|
25
|
+
{{ content_body | slice: part_length_double, part_length | join: " " | markdownify }}
|
26
|
+
{% if page.cta %}
|
27
|
+
<footer>
|
28
|
+
<a href="{{ page.cta.link }}" class="button scrolly">{{ page.cta.text }}</a>
|
29
|
+
</footer>
|
30
|
+
{% endif %}
|
31
|
+
</div>
|
32
|
+
</div>
|
33
|
+
</div>
|
34
|
+
</div>
|
35
|
+
</section>
|
36
|
+
|
@@ -0,0 +1,44 @@
|
|
1
|
+
<section id="second" class="main">
|
2
|
+
{% if page.header %}
|
3
|
+
<header>
|
4
|
+
<div class="container">
|
5
|
+
<h2>{{ page.header.title }}</h2>
|
6
|
+
<p>{{ page.header.subtitle }}</p>
|
7
|
+
</div>
|
8
|
+
</header>
|
9
|
+
{% endif %}
|
10
|
+
<div class="content dark style2">
|
11
|
+
<div class="container">
|
12
|
+
<div class="row">
|
13
|
+
<div class="col-4 col-12-narrow">
|
14
|
+
<section>
|
15
|
+
{{ content }}
|
16
|
+
{% if page.cta %}
|
17
|
+
<footer>
|
18
|
+
<a href="{{ page.cta.link }}" class="button scrolly">{{ page.cta.text }}</a>
|
19
|
+
</footer>
|
20
|
+
{% endif %}
|
21
|
+
</section>
|
22
|
+
</div>
|
23
|
+
<div class="col-8 col-12-narrow">
|
24
|
+
<div class="row">
|
25
|
+
{% for image in page.images %}
|
26
|
+
<div class="col-6">
|
27
|
+
<a href="{{ image.link }}" class="image fit">
|
28
|
+
<img
|
29
|
+
src="{{ image.url }}"
|
30
|
+
alt="{{ image.alt }}"
|
31
|
+
/>
|
32
|
+
{% if image.caption %}
|
33
|
+
<span class="image-caption">{{ image.caption }}</span>
|
34
|
+
{% endif %}
|
35
|
+
</a>
|
36
|
+
</div>
|
37
|
+
{% endfor %}
|
38
|
+
</div>
|
39
|
+
</div>
|
40
|
+
</div>
|
41
|
+
</div>
|
42
|
+
</div>
|
43
|
+
</section>
|
44
|
+
|