jekyll-theme-experiment 0.1.1 → 2.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.
- checksums.yaml +5 -5
- data/README.md +141 -0
- data/_includes/footer.html +1 -1
- data/_includes/head.html +1 -0
- data/_includes/header.html +3 -3
- data/_includes/portfolio.html +23 -14
- data/_includes/tools.html +4 -4
- data/_layouts/home.html +6 -6
- data/_layouts/page.html +5 -1
- data/_layouts/post.html +1 -1
- data/_sass/experiment/_reset.scss +2 -1
- data/_sass/experiment/modules/_nav_portafolio.scss +101 -0
- data/_sass/experiment/modules/_navbar.scss +43 -4
- data/_sass/experiment.scss +6 -8
- data/assets/javascript/toggleMenu.js +47 -0
- data/assets/main.scss +2 -5
- metadata +18 -20
- data/_sass/experiment/modules/_project_portafolio.scss +0 -222
- data/_sass/experiment/sprite.png +0 -0
- data/_sass/experiment/sprite_2.png +0 -0
- data/_sass/experiment/sprite_2@2x.png +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1184c3de416f0e9d1a4d467bf460d3385cc98dfd7af4e4f2e570b4966103df96
|
4
|
+
data.tar.gz: b49d3c1b11b2eca485dbf1f8cb4be6c47f4fbef25662df923aeefffda6f78b86
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ead0809ee4023ee432742237f9685c0403a800276b7e6254cd7b52a66654459a4b63700ae7564a65529024b8c9d681b32342a0828704d3e5c8a1537bb2b0e262
|
7
|
+
data.tar.gz: 0f0e0dfcead3426dc66cba1ac912903df040bae9cfabba07e20011d4fb24ca8bf6ff60e55c52cad1994959a493d7a9cc340605d343c6c9a054841a1a9d15be23
|
data/README.md
ADDED
@@ -0,0 +1,141 @@
|
|
1
|
+
# jekyll-theme-experiment
|
2
|
+
|
3
|
+
Since I started using [Jekyll](https://jekyllrb.com/) I have wanted to make a theme, so I have decided to create it to publish my portfolio.
|
4
|
+
|
5
|
+

|
6
|
+
|
7
|
+
Made with ♥️ by @anxhe
|
8
|
+
|
9
|
+
Your can see a demo [here](https://anxhe.github.io/jekyll-theme-experiment/)
|
10
|
+
|
11
|
+
## Installation
|
12
|
+
|
13
|
+
You will need to have installed [ruby](https://www.ruby-lang.org/en/documentation/installation/).
|
14
|
+
|
15
|
+
Then, in a bash terminal execute the following commands:
|
16
|
+
|
17
|
+
```sh
|
18
|
+
gem install bundler jekyll
|
19
|
+
```
|
20
|
+
|
21
|
+
## Usage
|
22
|
+
|
23
|
+
- Create a new Jekyll site (by running the `jekyll new` command), Jekyll installs a site that uses a gem-based theme called Minima.
|
24
|
+
|
25
|
+
```bash
|
26
|
+
jekyll new <your-blog-name>
|
27
|
+
cd <your-blog-name>
|
28
|
+
```
|
29
|
+
- Now we have to replace the `minima` gem with `jekyll-theme-experiment` in `Gemfile`, as follows:
|
30
|
+
|
31
|
+
```diff
|
32
|
+
# Gemfile
|
33
|
+
- gem "minima", "~> 2.0"
|
34
|
+
+ gem 'jekyll-theme-experiment'
|
35
|
+
```
|
36
|
+
|
37
|
+
- Then run:
|
38
|
+
|
39
|
+
`bundle install`
|
40
|
+
|
41
|
+
- Next, we need to replace `minima` theme key in `_config.yml` as follows:
|
42
|
+
|
43
|
+
```yml
|
44
|
+
# _config.yml
|
45
|
+
theme: jekyll-theme-experiment
|
46
|
+
```
|
47
|
+
|
48
|
+
- Each section and content is customizable via `_config.yml` file:
|
49
|
+
|
50
|
+
Replace the sample data with your own:
|
51
|
+
|
52
|
+
```yml
|
53
|
+
|
54
|
+
title: Your awesome title
|
55
|
+
description: >- # this means to ignore newlines until "baseurl:"
|
56
|
+
Write an awesome description for your new site here. You can edit this
|
57
|
+
line in _config.yml. It will appear in your document head meta (for
|
58
|
+
Google search results) and in your feed.xml site description.
|
59
|
+
```
|
60
|
+
|
61
|
+
jekyll-theme-experiment allows you to customize the following sections in the main layout:
|
62
|
+
|
63
|
+
- about
|
64
|
+
- portfolio
|
65
|
+
- tools
|
66
|
+
|
67
|
+
Add the following sample data to try it:
|
68
|
+
|
69
|
+
```yml
|
70
|
+
jekyll-theme-experiment:
|
71
|
+
about: # optional
|
72
|
+
avatar: https://robohash.org/experiment-avatar.png?size=300x300
|
73
|
+
|
74
|
+
portfolio: # optional
|
75
|
+
title: Portfolio
|
76
|
+
# Depending of the number of projects, you will need to update $projects
|
77
|
+
# variable in a sass file. e.g.
|
78
|
+
# _sass/main.scss
|
79
|
+
#
|
80
|
+
projects:
|
81
|
+
- name: Jekyll Theme experiment
|
82
|
+
link: http://example.com
|
83
|
+
github: https://github.com/anxhe/jekyll-theme-experiment
|
84
|
+
img_relative_url: /assets/example.png
|
85
|
+
|
86
|
+
tools: # optional
|
87
|
+
title: Tools and Experience
|
88
|
+
icons:
|
89
|
+
- relative_url: /assets/icons/bitbucket/bitbucket-original.svg
|
90
|
+
```
|
91
|
+
|
92
|
+
By default, jekyll generates a couple markdown files, we'll need to make
|
93
|
+
a few changes:
|
94
|
+
|
95
|
+
- Update `index.md` adding `title: home` to yaml's frontmatter
|
96
|
+
- Delete `about.md`, as this theme uses similar in the home layout.
|
97
|
+
- If you pretend use this site for blogging, you'll need to create a `blog.md` file with the following contents:
|
98
|
+
|
99
|
+

|
100
|
+
|
101
|
+
```md
|
102
|
+
---
|
103
|
+
layout: blog
|
104
|
+
title: blog
|
105
|
+
permalink: /blog/
|
106
|
+
---
|
107
|
+
```
|
108
|
+
|
109
|
+
Now we're ready, start the server:
|
110
|
+
|
111
|
+
```sh
|
112
|
+
bundle exec jekyll serve
|
113
|
+
```
|
114
|
+
|
115
|
+
Finally, open http://127.0.0.1:4000/ in the browser, and that's it, feel free to poke around.
|
116
|
+
|
117
|
+
## Customize navigation links
|
118
|
+
|
119
|
+
**Taken from minima theme**
|
120
|
+
|
121
|
+
This allows you to set which pages you want to appear in the navigation area and configure order of the links. For instance, to only link to the about and the portfolio page, add the following to your `_config.yml`:
|
122
|
+
|
123
|
+
```yml
|
124
|
+
header_pages:
|
125
|
+
- about.md
|
126
|
+
- portfolio.md
|
127
|
+
```
|
128
|
+
|
129
|
+
## Contributing
|
130
|
+
|
131
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/anxhe/jekyll-theme-experiment/issues. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [Contributor Covenant](http://contributor-covenant.org) code of conduct.
|
132
|
+
|
133
|
+
## Credits
|
134
|
+
|
135
|
+
- [Jekyll](https://github.com/jekyll/jekyll) and [Minima](https://github.com/jekyll/minima) - Thanks to their creators and contributors
|
136
|
+
- [Vitaly Rubtsov](https://dribbble.com/Vitwai) for inspiration on his [hamburguer menu animation](https://dribbble.com/shots/2293621-Hamburger-Menu-Animation)
|
137
|
+
- [Luis Manuel](https://scotch.io/@lmgonzalves) for his implementation of the above hamburger menu on [this tutorial](https://scotch.io/tutorials/building-a-morphing-hamburger-menu-with-css)
|
138
|
+
|
139
|
+
## License
|
140
|
+
|
141
|
+
The theme is available as open source under the terms of the [MIT License](https://opensource.org/licenses/MIT).
|
data/_includes/footer.html
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
<div class="l-center-wrap icon-media">
|
3
3
|
{% if site.twitter_username %}<a href="https://twitter.com/{{site.twitter_username}}"><i class="fab fa-twitter-square fa-3x"></i></a>{% endif %}
|
4
4
|
{% if site.github_username %}<a href="https://github.com/{{site.github_username}}"><i class="fab fa-github-square fa-3x"></i></a>{% endif %}
|
5
|
-
{% if site.linkedin_username %}<a href="https://www.
|
5
|
+
{% if site.linkedin_username %}<a href="https://www.linkedin.com/in/{{site.linkedin_username}}"><i class="fab fa-linkedin fa-3x"></i></a>{% endif %}
|
6
6
|
{% if site.dribbble_username %}<a href="https://dribbble.com/{{ site.dribbble_username }}"><i class="fab fa-dribbble-square fa-3x"></i></a>{% endif %}
|
7
7
|
{% if site.envelope_username %}<a href="mailto:{{ site.envelope_username }}"><i class="fas fa-envelope-square fa-3x"></i></a>{% endif %}
|
8
8
|
{% if site.flickr_username %}<a href="https://flickr.com/{{ site.flickr_username }}"><i class="fab fa-flickr fa-3x"></i></a>{% endif %}
|
data/_includes/head.html
CHANGED
@@ -4,4 +4,5 @@
|
|
4
4
|
<title>{{ site.title }}</title>
|
5
5
|
<link rel="stylesheet" href="{{ "/assets/main.css" | relative_url }}">
|
6
6
|
<script defer src="{{ "/assets/fontawesome/js/fontawesome-all.min.js" | relative_url }}" ></script>
|
7
|
+
<script defer src="{{ "/assets/javascript/toggleMenu.js" | relative_url }}" ></script>
|
7
8
|
</head>
|
data/_includes/header.html
CHANGED
@@ -1,10 +1,10 @@
|
|
1
1
|
<nav class="navbar">
|
2
|
-
{% assign default_paths = site.
|
2
|
+
{% assign default_paths = site.html_pages | map: "path" %}
|
3
3
|
{% assign page_paths = site.header_pages | default: default_paths %}
|
4
|
-
|
4
|
+
<span class="burguer-button" id='burguer-button'><i class="fas fa-bars"></i></span>
|
5
5
|
<div class="navbar-item">
|
6
6
|
{% for path in page_paths %}
|
7
|
-
{% assign my_page = site.
|
7
|
+
{% assign my_page = site.html_pages | where: "path", path | first %}
|
8
8
|
{% if my_page.title %}
|
9
9
|
<a class="{% if page.url == my_page.url %}active{% endif %}" href="{{ my_page.url | relative_url }}">
|
10
10
|
{{ my_page.title | escape }}
|
data/_includes/portfolio.html
CHANGED
@@ -1,26 +1,35 @@
|
|
1
|
-
{% if site.
|
1
|
+
{% if site.jekyll-theme-experiment.portfolio %}
|
2
2
|
<div class="l-wrap">
|
3
3
|
<div class="l-center-column">
|
4
4
|
<hr class="hr-decorator">
|
5
|
-
<h1>{{ site.
|
5
|
+
<h1>{{ site.jekyll-theme-experiment.portfolio.title }}</h1>
|
6
6
|
</div>
|
7
7
|
<div class="l-item">
|
8
|
-
{% for project in site.
|
8
|
+
{% for project in site.jekyll-theme-experiment.portfolio.projects %}
|
9
9
|
<div class="item-container-project">
|
10
10
|
<div class="item-project">
|
11
|
-
<img src="{{
|
11
|
+
<img src="{{ project.img_relative_url | relative_url }}" alt="{{ project.name }}">
|
12
12
|
</div>
|
13
13
|
<div class="content-hamburger-menu">
|
14
|
-
<
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
14
|
+
<div class="information-project">
|
15
|
+
<ul>
|
16
|
+
<li>
|
17
|
+
<a class="icon" id="toggle-{{ forloop.index }}">
|
18
|
+
<i class="fas fa-bars"></i>
|
19
|
+
</a>
|
20
|
+
</li>
|
21
|
+
<li>
|
22
|
+
<h3>{{ project.name }}</h3>
|
23
|
+
</li>
|
24
|
+
</ul>
|
25
|
+
</div>
|
26
|
+
<nav class="nav-links nav-{{ forloop.index }}">
|
27
|
+
<a class="nav-item" href="{{ project.link }}" target="_blank">
|
28
|
+
<i class="fas fa-link"></i>
|
29
|
+
</a>
|
30
|
+
<a class="nav-item" href="{{ project.github }}" target="_blank">
|
31
|
+
<i class="fab fa-github-alt"></i>
|
32
|
+
</a>
|
24
33
|
</nav>
|
25
34
|
</div>
|
26
35
|
</div>
|
data/_includes/tools.html
CHANGED
@@ -1,12 +1,12 @@
|
|
1
|
-
{% if site.
|
1
|
+
{% if site.jekyll-theme-experiment.tools %}
|
2
2
|
<div class="l-wrap">
|
3
3
|
<div class="l-center-column">
|
4
4
|
<hr class="hr-decorator">
|
5
|
-
<h1>
|
5
|
+
<h1>{{ site.jekyll-theme-experiment.tools.title }}</h1>
|
6
6
|
</div>
|
7
7
|
<div class="content-tools">
|
8
|
-
{% for tool in site.
|
9
|
-
<img src="{{
|
8
|
+
{% for tool in site.jekyll-theme-experiment.tools.icons %}
|
9
|
+
<img src="{{ tool.relative_url | relative_url }}" alt="">
|
10
10
|
{% endfor %}
|
11
11
|
</div>
|
12
12
|
</div>
|
data/_layouts/home.html
CHANGED
@@ -5,16 +5,16 @@ layout: default
|
|
5
5
|
<div class="l-wrap l-around">
|
6
6
|
<div class="l-content information-box">
|
7
7
|
<hr class="hr-decorator">
|
8
|
-
{% if site.
|
9
|
-
<h1>{{ site.
|
8
|
+
{% if site.title %}
|
9
|
+
<h1>{{ site.title }}</h1>
|
10
10
|
{% endif %}
|
11
|
-
{% if site.
|
12
|
-
<h3>{{ site.
|
11
|
+
{% if site.description %}
|
12
|
+
<h3>{{ site.description }}</h3>
|
13
13
|
{% endif %}
|
14
14
|
</div>
|
15
|
-
{% if site.
|
15
|
+
{% if site.jekyll-theme-experiment.about.avatar %}
|
16
16
|
<div class="avatar">
|
17
|
-
<img src="{{ site.
|
17
|
+
<img src="{{ site.jekyll-theme-experiment.about.avatar }}" alt="avatar">
|
18
18
|
</div>
|
19
19
|
{% endif %}
|
20
20
|
</div>
|
data/_layouts/page.html
CHANGED
data/_layouts/post.html
CHANGED
@@ -41,6 +41,7 @@ ul, ol, dl, figure,
|
|
41
41
|
*/
|
42
42
|
ul, ol {
|
43
43
|
margin-left: $spacing-unit;
|
44
|
+
list-style: none;
|
44
45
|
}
|
45
46
|
|
46
47
|
li {
|
@@ -70,7 +71,7 @@ h2 {
|
|
70
71
|
a {
|
71
72
|
color: $brand-color;
|
72
73
|
text-decoration: none;
|
73
|
-
|
74
|
+
cursor: pointer;
|
74
75
|
&:hover {
|
75
76
|
color: $grey-color-dark;
|
76
77
|
}
|
@@ -0,0 +1,101 @@
|
|
1
|
+
.item-container-project {
|
2
|
+
background-color: $background-color;
|
3
|
+
margin: $spacing-unit;
|
4
|
+
width: 400px;
|
5
|
+
height: 285px;
|
6
|
+
|
7
|
+
@media screen and (max-width: $on-phone) {
|
8
|
+
width: 300px;
|
9
|
+
height: 180px;
|
10
|
+
}
|
11
|
+
|
12
|
+
.item-project {
|
13
|
+
height: 215px;
|
14
|
+
@media screen and (max-width: $on-phone) {
|
15
|
+
height: 115px;
|
16
|
+
}
|
17
|
+
img {
|
18
|
+
display: block;
|
19
|
+
width: 100%;
|
20
|
+
}
|
21
|
+
}
|
22
|
+
|
23
|
+
.content-hamburger-menu {
|
24
|
+
width: 400px;
|
25
|
+
height: 285px;
|
26
|
+
box-shadow: 0 0 1em $grey-color;
|
27
|
+
position: relative;
|
28
|
+
top: -215px;
|
29
|
+
transition: .3s;
|
30
|
+
overflow: hidden;
|
31
|
+
|
32
|
+
@media screen and (max-width: $on-phone) {
|
33
|
+
height: 180px;
|
34
|
+
top: -115px;
|
35
|
+
width: 300px;
|
36
|
+
}
|
37
|
+
|
38
|
+
.information-project {
|
39
|
+
background-color: $purple-color;
|
40
|
+
bottom: 0px;
|
41
|
+
color: $brand-color;
|
42
|
+
height: 70px;
|
43
|
+
line-height: 70px;
|
44
|
+
position: absolute;
|
45
|
+
width: 100%;
|
46
|
+
z-index: 10;
|
47
|
+
@media screen and (max-width: $on-phone) {
|
48
|
+
height: 30px;
|
49
|
+
line-height: 30px;
|
50
|
+
font-size: $spacing-unit / 2;
|
51
|
+
}
|
52
|
+
ul {
|
53
|
+
display: flex;
|
54
|
+
justify-content: space-between;
|
55
|
+
h3 {
|
56
|
+
margin-right: $spacing-unit;
|
57
|
+
}
|
58
|
+
.icon:hover {
|
59
|
+
color: $grey-color-light;
|
60
|
+
}
|
61
|
+
}
|
62
|
+
}
|
63
|
+
.nav-links {
|
64
|
+
align-items: center;
|
65
|
+
bottom: -285px;
|
66
|
+
display: flex;
|
67
|
+
justify-content: center;
|
68
|
+
height: 215px;
|
69
|
+
// display: inline-block;
|
70
|
+
position: relative;
|
71
|
+
// pointer-events: none;
|
72
|
+
// z-index: 1;
|
73
|
+
background-color: $purple-color-transparent;
|
74
|
+
transition: .3s;
|
75
|
+
@media screen and (max-width: $on-phone) {
|
76
|
+
height: 160px;
|
77
|
+
}
|
78
|
+
.nav-item {
|
79
|
+
position: relative;
|
80
|
+
display: inline-block;
|
81
|
+
// float: left;
|
82
|
+
// clear: both;
|
83
|
+
// color: transparent;
|
84
|
+
font-size: 14px;
|
85
|
+
padding: 30px;
|
86
|
+
letter-spacing: -6.2px;
|
87
|
+
height: 7px;
|
88
|
+
line-height: 7px;
|
89
|
+
text-transform: uppercase;
|
90
|
+
&:hover {
|
91
|
+
color: $grey-color-light;
|
92
|
+
}
|
93
|
+
}
|
94
|
+
}
|
95
|
+
@for $i from 1 through $projects {
|
96
|
+
.active_nav-#{$i} {
|
97
|
+
bottom: 0;
|
98
|
+
}
|
99
|
+
}
|
100
|
+
}
|
101
|
+
}
|
@@ -1,16 +1,17 @@
|
|
1
1
|
.navbar {
|
2
|
+
background-color: $purple-color;
|
2
3
|
box-shadow: 0 0 0.2em $grey-color;
|
4
|
+
height: 70px;
|
5
|
+
line-height: 70px;
|
3
6
|
position: fixed;
|
4
7
|
text-align: right;
|
5
|
-
background-color: $purple-color;
|
6
8
|
width: 100%;
|
7
|
-
z-index:
|
9
|
+
z-index: 100;
|
8
10
|
.navbar-item {
|
9
|
-
padding: $spacing-unit / 2;
|
10
11
|
text-transform: uppercase;
|
11
12
|
& > a {
|
12
13
|
font-weight: bold;
|
13
|
-
padding:
|
14
|
+
padding: $spacing-unit / 2;
|
14
15
|
}
|
15
16
|
& > a:hover {
|
16
17
|
color: $grey-color-light;
|
@@ -19,4 +20,42 @@
|
|
19
20
|
color: $grey-color-light;
|
20
21
|
}
|
21
22
|
}
|
23
|
+
.burguer-button {
|
24
|
+
display: none;
|
25
|
+
}
|
26
|
+
@media screen and (max-width: $on-phone) {
|
27
|
+
.burguer-button {
|
28
|
+
margin: $spacing-unit / 2;
|
29
|
+
display: block;
|
30
|
+
color: $brand-color;
|
31
|
+
width: 40px;
|
32
|
+
line-height: 40px;
|
33
|
+
border-radius: 50%;
|
34
|
+
box-shadow: 0 0 0.3em $grey-color;
|
35
|
+
text-align: center;
|
36
|
+
}
|
37
|
+
|
38
|
+
.navbar-item {
|
39
|
+
background-color: $purple-color-transparent;
|
40
|
+
left: -100%;
|
41
|
+
position: fixed;
|
42
|
+
display: flex;
|
43
|
+
flex-direction: column;
|
44
|
+
width: 100%;
|
45
|
+
height: 100%;
|
46
|
+
align-items: center;
|
47
|
+
transition: .3s;
|
48
|
+
& > a {
|
49
|
+
padding: $spacing-unit / 2 $spacing-unit * 3;
|
50
|
+
border-bottom: solid 1px $brand-color;
|
51
|
+
}
|
52
|
+
& > a:first-child {
|
53
|
+
border-top: solid 1px $brand-color;
|
54
|
+
margin-top: $spacing-unit;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
.active {
|
58
|
+
left: 0;
|
59
|
+
}
|
60
|
+
}
|
22
61
|
}
|
data/_sass/experiment.scss
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
@charset "utf-8";
|
2
2
|
|
3
3
|
// Define defaults for each variable.
|
4
|
-
|
5
4
|
$base-font-family: "Helvetica Neue", Helvetica, Arial, sans-serif !default;
|
6
5
|
$base-font-size: 16px !default;
|
7
6
|
$base-font-weight: 400 !default;
|
@@ -29,18 +28,17 @@ $on-phone: 400px !default;
|
|
29
28
|
$on-palm: 600px !default;
|
30
29
|
$on-laptop: 800px !default;
|
31
30
|
|
32
|
-
|
33
31
|
// Import partials.
|
34
32
|
@import
|
35
33
|
"experiment/reset",
|
36
34
|
"experiment/syntax-highlighting",
|
37
35
|
"experiment/layout",
|
38
|
-
//
|
39
|
-
"experiment/modules/information-box",
|
40
|
-
"experiment/modules/navbar",
|
36
|
+
//components
|
41
37
|
"experiment/modules/avatar",
|
42
|
-
"experiment/modules/project_portafolio",
|
43
38
|
"experiment/modules/content_tools",
|
44
|
-
"experiment/modules/
|
45
|
-
"experiment/modules/
|
39
|
+
"experiment/modules/hr",
|
40
|
+
"experiment/modules/information-box",
|
41
|
+
"experiment/modules/nav_portafolio",
|
42
|
+
"experiment/modules/navbar",
|
43
|
+
"experiment/modules/post"
|
46
44
|
;
|
@@ -0,0 +1,47 @@
|
|
1
|
+
function mediaQuery(query) {
|
2
|
+
let $button = document.querySelector('#burguer-button');
|
3
|
+
let navItem = document.querySelector('.navbar-item');
|
4
|
+
let element = 'active';
|
5
|
+
if (query.matches) {
|
6
|
+
$button.addEventListener('click', function() {
|
7
|
+
toggleMenu(navItem, $button, element)
|
8
|
+
});
|
9
|
+
} else {
|
10
|
+
$button.removeEventListener('click', function() {
|
11
|
+
toggleMenu(navItem, $button, element);
|
12
|
+
});
|
13
|
+
}
|
14
|
+
}
|
15
|
+
|
16
|
+
function toggleMenu(navItem, $button, element) {
|
17
|
+
let ico = $button.querySelector('svg');
|
18
|
+
if (navItem.classList.contains(element)){
|
19
|
+
navItem.classList.remove(element);
|
20
|
+
ico.classList.replace('fa-times-circle', 'fa-bars');
|
21
|
+
ico.setAttribute('data-icon', 'bars');
|
22
|
+
} else {
|
23
|
+
navItem.classList.add(element);
|
24
|
+
ico.classList.replace('fa-bars', 'fa-times-circle');
|
25
|
+
ico.setAttribute('data-icon', 'times-circle');
|
26
|
+
}
|
27
|
+
}
|
28
|
+
|
29
|
+
|
30
|
+
window.onload = function() {
|
31
|
+
let query = window.matchMedia('(max-width: 500px)');
|
32
|
+
query.addListener(mediaQuery);
|
33
|
+
|
34
|
+
mediaQuery(query);
|
35
|
+
|
36
|
+
let all = document.querySelectorAll('.icon');
|
37
|
+
for (let i = 1; i < all.length + 1; i ++) {
|
38
|
+
let nav = document.querySelector('.nav-'+i);
|
39
|
+
let $button = document.querySelector('#toggle-'+ i);
|
40
|
+
let element = 'active_nav-'+i;
|
41
|
+
$button.addEventListener('click', function() {
|
42
|
+
toggleMenu(nav, $button, element);
|
43
|
+
});
|
44
|
+
}
|
45
|
+
}
|
46
|
+
|
47
|
+
|
data/assets/main.scss
CHANGED
@@ -2,10 +2,7 @@
|
|
2
2
|
# Only the main Sass file needs front matter (the dashes are enough)
|
3
3
|
---
|
4
4
|
|
5
|
-
//
|
6
|
-
$projects:
|
7
|
-
|
8
|
-
// Configure number of links inside each project
|
9
|
-
$items: 4;
|
5
|
+
// Number of projects inside of portfolio
|
6
|
+
$projects: {{ site.jekyll-theme-experiment.portfolio.projects | size | default: 0 }};
|
10
7
|
|
11
8
|
@import "experiment";
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: jekyll-theme-experiment
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Angelina Moreno Robledo
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-11-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: jekyll
|
@@ -16,43 +16,43 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: '
|
19
|
+
version: '4'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
24
|
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version: '
|
26
|
+
version: '4'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
31
|
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '2.2'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
38
|
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '2.2'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version: '
|
47
|
+
version: '13.0'
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version: '
|
55
|
-
description:
|
54
|
+
version: '13.0'
|
55
|
+
description:
|
56
56
|
email:
|
57
57
|
- anyelinamoreno@gmail.com
|
58
58
|
executables: []
|
@@ -60,6 +60,7 @@ extensions: []
|
|
60
60
|
extra_rdoc_files: []
|
61
61
|
files:
|
62
62
|
- LICENSE.txt
|
63
|
+
- README.md
|
63
64
|
- _includes/footer.html
|
64
65
|
- _includes/head.html
|
65
66
|
- _includes/header.html
|
@@ -78,12 +79,9 @@ files:
|
|
78
79
|
- _sass/experiment/modules/_content_tools.scss
|
79
80
|
- _sass/experiment/modules/_hr.scss
|
80
81
|
- _sass/experiment/modules/_information-box.scss
|
82
|
+
- _sass/experiment/modules/_nav_portafolio.scss
|
81
83
|
- _sass/experiment/modules/_navbar.scss
|
82
84
|
- _sass/experiment/modules/_post.scss
|
83
|
-
- _sass/experiment/modules/_project_portafolio.scss
|
84
|
-
- _sass/experiment/sprite.png
|
85
|
-
- _sass/experiment/sprite_2.png
|
86
|
-
- _sass/experiment/sprite_2@2x.png
|
87
85
|
- assets/example.png
|
88
86
|
- assets/fontawesome/css/fa-svg-with-js.css
|
89
87
|
- assets/fontawesome/js/fa-brands.js
|
@@ -122,29 +120,29 @@ files:
|
|
122
120
|
- assets/icons/heroku/heroku-plain-wordmark.svg
|
123
121
|
- assets/icons/heroku/heroku-plain.svg
|
124
122
|
- assets/icons/heroku/heroku.eps
|
123
|
+
- assets/javascript/toggleMenu.js
|
125
124
|
- assets/main.scss
|
126
125
|
homepage: https://github.com/anxhe/jekyll-theme-experiment
|
127
126
|
licenses:
|
128
127
|
- MIT
|
129
128
|
metadata: {}
|
130
|
-
post_install_message:
|
129
|
+
post_install_message:
|
131
130
|
rdoc_options: []
|
132
131
|
require_paths:
|
133
132
|
- lib
|
134
133
|
required_ruby_version: !ruby/object:Gem::Requirement
|
135
134
|
requirements:
|
136
|
-
- - "
|
135
|
+
- - "~>"
|
137
136
|
- !ruby/object:Gem::Version
|
138
|
-
version: '0'
|
137
|
+
version: '3.0'
|
139
138
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
140
139
|
requirements:
|
141
140
|
- - ">="
|
142
141
|
- !ruby/object:Gem::Version
|
143
142
|
version: '0'
|
144
143
|
requirements: []
|
145
|
-
|
146
|
-
|
147
|
-
signing_key:
|
144
|
+
rubygems_version: 3.2.22
|
145
|
+
signing_key:
|
148
146
|
specification_version: 4
|
149
147
|
summary: This is a jekyll theme made with love
|
150
148
|
test_files: []
|
@@ -1,222 +0,0 @@
|
|
1
|
-
$transition-duration: 0.5s;
|
2
|
-
$transition-delay: 0.05s;
|
3
|
-
|
4
|
-
.item-container-project {
|
5
|
-
background-color: $background-color;
|
6
|
-
margin: $spacing-unit;
|
7
|
-
width: 400px;
|
8
|
-
height: 285px;
|
9
|
-
@media screen and (max-width: $on-phone) {
|
10
|
-
width: 300px;
|
11
|
-
height: 180px;
|
12
|
-
}
|
13
|
-
|
14
|
-
.item-project {
|
15
|
-
height: 215px;
|
16
|
-
@media screen and (max-width: $on-phone) {
|
17
|
-
height: 115px;
|
18
|
-
}
|
19
|
-
|
20
|
-
img {
|
21
|
-
display: block;
|
22
|
-
width: 100%;
|
23
|
-
}
|
24
|
-
}
|
25
|
-
|
26
|
-
.content-hamburger-menu {
|
27
|
-
width: 400px;
|
28
|
-
height: 285px;
|
29
|
-
box-shadow: 0 0 1em $grey-color;
|
30
|
-
position: relative;
|
31
|
-
top: -215px;
|
32
|
-
overflow: hidden;
|
33
|
-
@media screen and (max-width: $on-phone) {
|
34
|
-
height: 180px;
|
35
|
-
top: -115px;
|
36
|
-
width: 300px;
|
37
|
-
}
|
38
|
-
|
39
|
-
.information-project {
|
40
|
-
width: 100%;
|
41
|
-
height: 70px;
|
42
|
-
background-color: $purple-color;
|
43
|
-
display: block;
|
44
|
-
bottom: 0px;
|
45
|
-
position: absolute;
|
46
|
-
@media screen and (max-width: $on-phone) {
|
47
|
-
height: 30px;
|
48
|
-
}
|
49
|
-
h3 {
|
50
|
-
color: $brand-color;
|
51
|
-
text-align: end;
|
52
|
-
margin: 15px 15px 0 0;
|
53
|
-
@media screen and (max-width: $on-phone) {
|
54
|
-
font-size: 17px;
|
55
|
-
margin: 0 5px 0 0;
|
56
|
-
}
|
57
|
-
}
|
58
|
-
}
|
59
|
-
|
60
|
-
@for $i from 1 through $projects {
|
61
|
-
#toggle-#{$i} {
|
62
|
-
position: absolute;
|
63
|
-
visibility: hidden;
|
64
|
-
}
|
65
|
-
|
66
|
-
// Styles for the 'open' state, if the checkbox is checked
|
67
|
-
#toggle-#{$i}:checked {
|
68
|
-
// Any element you need to change the style if menu is open goes here, using the sibling selector (~) as follows
|
69
|
-
// Making the "X" icon using `:before` and `:after` pseudo-elements
|
70
|
-
& ~ .toggle-container .button-toggle {
|
71
|
-
box-shadow: 0 0 0 450px $purple-color-transparent, inset 0 0 0 20px $purple-color-transparent;
|
72
|
-
&:before {
|
73
|
-
transform: translateY(50%) rotate(45deg) scale(1);
|
74
|
-
}
|
75
|
-
&:after {
|
76
|
-
transform: translateY(-50%) rotate(-45deg) scale(1);
|
77
|
-
}
|
78
|
-
}
|
79
|
-
|
80
|
-
// Open nav
|
81
|
-
& ~ .nav {
|
82
|
-
background: transparent;
|
83
|
-
pointer-events: all;
|
84
|
-
transform: translate(130px, -130px);
|
85
|
-
// Restoring nav items from "lines" in the menu icon
|
86
|
-
.nav-item {
|
87
|
-
font-size: 20px;
|
88
|
-
color: $brand-color;
|
89
|
-
letter-spacing: 0;
|
90
|
-
height: 40px;
|
91
|
-
line-height: 40px;
|
92
|
-
margin-top: 0;
|
93
|
-
opacity: 1;
|
94
|
-
transform: scaleY(1);
|
95
|
-
transition: $transition-duration, opacity 0.1s;
|
96
|
-
|
97
|
-
&:hover {
|
98
|
-
color: $grey-color-light;
|
99
|
-
}
|
100
|
-
// Hiding the lines
|
101
|
-
&:before {
|
102
|
-
opacity: 0;
|
103
|
-
}
|
104
|
-
}
|
105
|
-
}
|
106
|
-
}
|
107
|
-
}
|
108
|
-
|
109
|
-
.button-toggle {
|
110
|
-
position: absolute;
|
111
|
-
top: 215px;
|
112
|
-
display: inline-block;
|
113
|
-
width: 20px;
|
114
|
-
height: 20px;
|
115
|
-
margin: 25px;
|
116
|
-
background-color: transparent;
|
117
|
-
border: none;
|
118
|
-
cursor: pointer;
|
119
|
-
border-radius: 100%;
|
120
|
-
transition: $transition-duration + 0.1;
|
121
|
-
z-index: 1;
|
122
|
-
@media screen and (max-width: 400px) {
|
123
|
-
top: 128px;
|
124
|
-
}
|
125
|
-
|
126
|
-
// Making the "X" icon using `:before` and `:after` pseudo-elements
|
127
|
-
// Initially hidden because `scale(0)` transformation
|
128
|
-
|
129
|
-
&:before, &:after {
|
130
|
-
position: absolute;
|
131
|
-
content: '';
|
132
|
-
top: 50%;
|
133
|
-
left: 0;
|
134
|
-
width: 100%;
|
135
|
-
height: 2px;
|
136
|
-
background-color: $brand-color;
|
137
|
-
border-radius: 5px;
|
138
|
-
transition: $transition-duration;
|
139
|
-
}
|
140
|
-
|
141
|
-
&:before {
|
142
|
-
transform: translateY(50%) rotate(45deg) scale(0);
|
143
|
-
}
|
144
|
-
|
145
|
-
&:after {
|
146
|
-
transform: translateY(-50%) rotate(-45deg) scale(0);
|
147
|
-
}
|
148
|
-
}
|
149
|
-
|
150
|
-
.nav {
|
151
|
-
display: inline-block;
|
152
|
-
position: relative;
|
153
|
-
top: 215px;
|
154
|
-
margin: 25px 25px 20px;
|
155
|
-
// Don't want pointer-events as menu is closed
|
156
|
-
pointer-events: none;
|
157
|
-
transition: $transition-duration;
|
158
|
-
z-index: 1;
|
159
|
-
@media screen and (max-width: 400px) {
|
160
|
-
top: 132px;
|
161
|
-
}
|
162
|
-
|
163
|
-
// Showing nav items as lines, making up the hamburger menu icon
|
164
|
-
.nav-item {
|
165
|
-
position: relative;
|
166
|
-
display: inline-block;
|
167
|
-
float: left;
|
168
|
-
clear: both;
|
169
|
-
color: transparent;
|
170
|
-
font-size: 14px;
|
171
|
-
letter-spacing: -6.2px;
|
172
|
-
height: 7px;
|
173
|
-
line-height: 7px;
|
174
|
-
text-transform: uppercase;
|
175
|
-
white-space: nowrap;
|
176
|
-
transform: scaleY(0.2);
|
177
|
-
transition: $transition-duration, opacity 1s;
|
178
|
-
|
179
|
-
// Setting delays for the nav items in close transition
|
180
|
-
@for $i from 1 through $items {
|
181
|
-
&:nth-child(#{$i}) {
|
182
|
-
$delay: ($i - 1) * $transition-delay;
|
183
|
-
transition-delay: $delay;
|
184
|
-
&:before {
|
185
|
-
transition-delay: $delay;
|
186
|
-
}
|
187
|
-
}
|
188
|
-
}
|
189
|
-
|
190
|
-
// Adjusting width for the first line
|
191
|
-
&:nth-child(1) {
|
192
|
-
letter-spacing: -8px;
|
193
|
-
}
|
194
|
-
|
195
|
-
// Adjusting width for the second line
|
196
|
-
&:nth-child(2) {
|
197
|
-
letter-spacing: -7px;
|
198
|
-
}
|
199
|
-
|
200
|
-
// Adjusting from the fourth element onwards
|
201
|
-
&:nth-child(n + 4) {
|
202
|
-
letter-spacing: -8px;
|
203
|
-
margin-top: -7px;
|
204
|
-
opacity: 0;
|
205
|
-
}
|
206
|
-
|
207
|
-
// Getting the lines for the hamburger menu icon
|
208
|
-
&:before {
|
209
|
-
position: absolute;
|
210
|
-
content: '';
|
211
|
-
top: 50%;
|
212
|
-
left: 0;
|
213
|
-
width: 100%;
|
214
|
-
height: 2px;
|
215
|
-
background-color: $brand-color;
|
216
|
-
transform: translateY(-50%) scaleY(5);
|
217
|
-
transition: $transition-duration;
|
218
|
-
}
|
219
|
-
}
|
220
|
-
}
|
221
|
-
}
|
222
|
-
}
|
data/_sass/experiment/sprite.png
DELETED
Binary file
|
Binary file
|
Binary file
|