├── .gitignore
├── LICENSE
├── README.md
├── _config.yml
├── _includes
└── post.html
├── _layouts
├── default.html
└── post.html
├── _posts
└── 2013-12-09-example-post.md
├── css
├── main.css
├── responsive.css
└── syntax.css
├── favicon.ico
├── images
├── cover.jpg
├── logo.png
└── sidebar-button.png
├── index.html
└── scripts
└── responsive.js
/.gitignore:
--------------------------------------------------------------------------------
1 | _site
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | The MIT License (MIT)
2 |
3 | Copyright (c) 2013 Jeff Martin
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.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | flex
2 | ====
3 |
4 | Flex is a responsive, flexible, [Jekyll](http://jekyllrb.com) theme.
5 |
6 | The theme is based on the website [The Development](http://thedevelopment.co).
7 |
8 | View a demo website [here](http://the-development.github.io/flex/).
9 |
10 | Installation
11 | ===
12 | To use this theme, you would do so like any other Jekyll setup:
13 |
14 | 1. Install Jekyll: `gem install jekyll`
15 | 2. Fork this repository to your machine
16 | 3. `cd` to the forked directory and run `jekyll serve --watch`
17 | 4. Celebrate and dance.
18 |
19 | Contributions
20 | ===
21 |
22 | In general, there are no strict rules for contributing, only that your code is clean and well structured.
23 |
24 | For bugs:
25 | - To merge a fix, you can simply open a pull request.
26 | - To report one that is not yet fixed, open an issue.
27 |
28 | Feature requests:
29 | - **Always** open an issue first before implementing and proposing a new feature. This is only so I can make sure the theme doesn't become bloated with too many features. This way, I can determine if an idea is something that makes sense for the theme's design.
30 |
31 | If in doubt, you can always ask me on Twitter: [@jeffxmn](https://twitter.com/jeffxmn)
32 |
33 | License
34 | ===
35 |
36 | Flex is licensed under the MIT license:
37 |
38 |
39 | The MIT License (MIT)
40 |
41 | Copyright (c) 2013-2014 Jeff Martin
42 |
43 | Permission is hereby granted, free of charge, to any person obtaining a copy
44 | of this software and associated documentation files (the "Software"), to deal
45 | in the Software without restriction, including without limitation the rights
46 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
47 | copies of the Software, and to permit persons to whom the Software is
48 | furnished to do so, subject to the following conditions:
49 |
50 | The above copyright notice and this permission notice shall be included in all
51 | copies or substantial portions of the Software.
52 |
53 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
54 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
55 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
56 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
57 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
58 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
59 | SOFTWARE.
60 |
--------------------------------------------------------------------------------
/_config.yml:
--------------------------------------------------------------------------------
1 | name: Flex
2 | markdown: redcarpet
3 | pygments: true
4 |
--------------------------------------------------------------------------------
/_includes/post.html:
--------------------------------------------------------------------------------
1 |
2 |
5 |
6 |
7 |
8 |
9 |
10 |
{{ page.title }}
11 | {{ page.date | date_to_string }}
12 |
13 |
14 |
15 |
16 | {{ content }}
17 |
18 |
19 |
20 | Published on {{ page.date | date_to_string }} •
21 | Find me on Twitter !
22 |
23 |
24 |
25 |
--------------------------------------------------------------------------------
/_layouts/default.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 | Flex - {{ page.title }}
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
49 |
50 | {{ content }}
51 |
52 |
53 |
54 |
55 |
56 |
--------------------------------------------------------------------------------
/_layouts/post.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | ---
4 | {% include post.html %}
5 |
--------------------------------------------------------------------------------
/_posts/2013-12-09-example-post.md:
--------------------------------------------------------------------------------
1 | ---
2 | layout: post
3 | title: Example post
4 | cover: cover.jpg
5 | date: 2013-12-09 12:00:00
6 | categories: posts
7 | ---
8 |
9 | ## Introducing Flex, a Jekyll theme
10 |
11 | Flex is a minimalist, responsive theme based on the website, [The Development](http://thedevelopment.co).
12 |
13 | ## Open Sourced on GitHub
14 |
15 | Flex is open sourced on GitHub and is licensed under the [MIT License](http://opensource.org/licenses/MIT). Feel free to contribute to it anytime!
16 |
--------------------------------------------------------------------------------
/css/main.css:
--------------------------------------------------------------------------------
1 | /*****************************************************************************/
2 | /*
3 | /* Common
4 | /*
5 | /*****************************************************************************/
6 |
7 | * {
8 | margin: 0;
9 | padding: 0;
10 | }
11 |
12 | html, body {
13 | height: 100%;
14 | width: 100%;
15 | -webkit-font-smoothing: antialiased;
16 | }
17 |
18 | body {
19 | color: #4a4a4a;
20 | background-color: #fafbfc;
21 | font-family: 'Raleway', Arial, sans-serif;
22 | font-weight: 400;
23 | font-size: 0.85em;
24 | overflow: hidden;
25 | }
26 |
27 | a {
28 | color: #8085C1;
29 | text-decoration: none;
30 | border: none;
31 | }
32 |
33 | a img {
34 | outline: none;
35 | }
36 |
37 | a:hover {
38 | color: #555;
39 | border: none;
40 | }
41 |
42 | .separator {
43 | color: #555;
44 | }
45 |
46 | /*****************************************************************************/
47 | /*
48 | /* Home
49 | /*
50 | /*****************************************************************************/
51 | #logo {
52 | max-width: 128px;
53 | }
54 |
55 | .posts a {
56 | color: #444;
57 | }
58 |
59 | .posts a:hover {
60 | color: #777;
61 | }
62 |
63 | .posts-list {
64 | list-style-type: none;
65 | }
66 |
67 | .posts-list li {
68 | text-align: center;
69 | line-height: 1.75em;
70 | }
71 |
72 | /*****************************************************************************/
73 | /*
74 | /* Site
75 | /*
76 | /*****************************************************************************/
77 |
78 | .site {
79 | height: 100%;
80 | width: 100%;
81 | line-height: 1.25em;
82 | }
83 |
84 | .title {
85 | display: inline-block;
86 | text-align: center;
87 | line-height: 25px;
88 | }
89 |
90 | .tagline {
91 | width: 100%;
92 | color: #787878;
93 | font-weight: 600;
94 | text-align: center;
95 | margin-top: 0.5em;
96 | display: block;
97 | }
98 |
99 | .posts {
100 | border-top: 1px solid #e7e7e7;
101 | margin-top: 1em;
102 | padding-top: 1.5em;
103 | padding-bottom: 1.25em;
104 | }
105 |
106 | .footer {
107 | font-size: 0.95em;
108 | border-top: 1px solid #e7e7e7;
109 | padding-top: 1.25em;
110 | padding-bottom: 1.5em;
111 | overflow: hidden;
112 | float: center;
113 | text-align: center;
114 | }
115 |
116 | /*****************************************************************************/
117 | /*
118 | /* Posts
119 | /*
120 | /*****************************************************************************/
121 |
122 | #date {
123 | font-size: 16px;
124 | padding-top: 0.25em;
125 | margin-bottom: 2em;
126 | text-transform: uppercase;
127 | font-weight: 600;
128 | color: #787878;
129 | }
130 |
131 | #cover-photo-container,
132 | #info-container {
133 | display: block;
134 | }
135 |
136 | #info-container {
137 | margin-top: 3em;
138 | }
139 |
140 | #title {
141 | color: #4a4a4a;
142 | margin-bottom: 0.35em;
143 | font-size: 3em;
144 | line-height: 40px;
145 | text-transform: uppercase;
146 | }
147 |
148 | .post {
149 | line-height: 24px;
150 | max-width: 725px;
151 | clear: both;
152 | }
153 |
154 | .post h2 {
155 | margin-top: 1.25em;
156 | margin-left: -0.5em;
157 | margin-bottom: 1.25em;
158 | }
159 |
160 | .post a,
161 | #about a {
162 | border-bottom: 1px solid #8085C1;
163 | }
164 |
165 | .post a:hover {
166 | border: none;
167 | }
168 |
169 | /* standard */
170 | .post pre {
171 | border: 1px solid #ddd;
172 | background-color: #eef;
173 | padding: 0 .4em;
174 | }
175 |
176 | .post p {
177 | font-family: 'Source Sans Pro', Arial, sans-serif;
178 | font-size: 17px;
179 | margin-bottom: 1.45em;
180 | text-align: justify;
181 | }
182 |
183 | .post ul, .post ol {
184 | margin-left: 2.35em;
185 | margin-bottom: 1.25em;
186 | }
187 |
188 | .post code {
189 | border: 1px solid #ddd;
190 | background-color: #eef;
191 | padding: 0 .2em;
192 | }
193 |
194 | .post pre code {
195 | border: none;
196 | }
197 |
198 | /* terminal */
199 | .post pre.terminal {
200 | border: 1px solid #000;
201 | background-color: #333;
202 | color: #FFF;
203 | }
204 |
205 | .post pre.terminal code {
206 | background-color: #333;
207 | }
208 |
209 | /*****************************************************************************/
210 | /*
211 | /* Sidebar and Content
212 | /*
213 | /*****************************************************************************/
214 |
215 | .sidebar,
216 | .content {
217 | vertical-align: top;
218 | height: 100%;
219 | -webkit-overflow-scrolling: touch;
220 | overflow-y: auto;
221 | overflow-x: hidden;
222 | }
223 |
224 | .sidebar {
225 | float: left;
226 | width: 14%;
227 | padding-left: 11em;
228 | padding-right: 2.125em;
229 | border-right: 1px solid #e7e7e7;
230 | }
231 |
232 | .content {
233 | padding-left: 2.125em;
234 | }
235 |
236 | .header {
237 | text-align: center;
238 | padding-top: 2.5em;
239 | font-size: 1.1em;
240 | }
241 |
242 | .post-link {
243 | margin-bottom: 0.75em;
244 | }
245 |
246 | .post-title {
247 | font-weight: 600;
248 | font-size: 1.25em;
249 | text-transform: uppercase;
250 | }
251 |
252 | .post-date {
253 | color: #8a8a8a;
254 | font-family: Monaco, "Courier New", monospace;
255 | font-weight: 600;
256 | font-size: 0.65em;
257 | display: block;
258 | text-transform: uppercase;
259 | }
260 |
261 | #sidebar-button {
262 | height: intrinsic;
263 | cursor: pointer;
264 | display: none;
265 | padding: 15px 5px 0px 0px;
266 | margin-bottom: 10px;
267 | border-bottom: 1px solid #e7e7e7;
268 | }
269 |
270 | #sidebar-button:active,
271 | #sidebar-button:hover {
272 | opacity: 0.7;
273 | }
274 |
275 | /*****************************************************************************/
276 | /*
277 | /* Colophon
278 | /*
279 | /*****************************************************************************/
280 |
281 | .colophon {
282 | margin-top: 1.5em;
283 | margin-bottom: 1.45em;
284 | border-top: 1px dotted #e7e7e7;
285 | }
286 |
287 | .colophon p {
288 | margin-top: 1.25em;
289 | font-size: 0.95em;
290 | color: #777;
291 | }
292 |
--------------------------------------------------------------------------------
/css/responsive.css:
--------------------------------------------------------------------------------
1 | @media (max-width:1309px) {
2 | #cover-photo {
3 | max-width: 95%;
4 | }
5 |
6 | .header {
7 | padding-top: 3.45em;
8 | }
9 |
10 | .posts {
11 | font-size: 0.9em;
12 | }
13 |
14 | .footer {
15 | font-size: 0.85em;
16 | }
17 | }
18 |
19 | @media (max-width:1090px) {
20 | #logo {
21 | max-width: 100px;
22 | }
23 |
24 | #title {
25 | font-size: 2.75em;
26 | line-height: 35px;
27 | }
28 |
29 | .header {
30 | padding-top: 3.85em;
31 | }
32 |
33 | .posts {
34 | font-size: 0.85em;
35 | }
36 |
37 | .sidebar {
38 | padding-left: 4em;
39 | }
40 |
41 | .content {
42 | padding-right: 3em;
43 | }
44 |
45 | .footer {
46 | font-size: 0.85em;
47 | }
48 | }
49 |
50 | /**
51 | * iPhone width
52 | **/
53 | @media (max-width:640px) {
54 | #logo {
55 | max-width: 75px;
56 | }
57 |
58 | #cover-photo-container {
59 | text-align: center;
60 | }
61 |
62 | #title {
63 | font-size: 2.5em;
64 | }
65 |
66 | .sidebar {
67 | transition: 1s;
68 | margin-left: -100%;
69 | z-index: 3;
70 | width: 35%;
71 | padding-left: 1.75em;
72 | }
73 |
74 | .content {
75 | z-index: 1;
76 | padding-right: 2em;
77 | }
78 |
79 | #sidebar-button {
80 | display: block;
81 | z-index: 2;
82 | }
83 | }
84 |
85 | /*****************************************************************************/
86 | /*
87 | /* Sidebar responsive animations
88 | /*
89 | /*****************************************************************************/
90 |
91 | .slideIn {
92 | margin-left: 0%;
93 | }
94 |
--------------------------------------------------------------------------------
/css/syntax.css:
--------------------------------------------------------------------------------
1 | .highlight { background: #ffffff; }
2 | .highlight .c { color: #999988; font-style: italic } /* Comment */
3 | .highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
4 | .highlight .k { font-weight: bold } /* Keyword */
5 | .highlight .o { font-weight: bold } /* Operator */
6 | .highlight .cm { color: #999988; font-style: italic } /* Comment.Multiline */
7 | .highlight .cp { color: #999999; font-weight: bold } /* Comment.Preproc */
8 | .highlight .c1 { color: #999988; font-style: italic } /* Comment.Single */
9 | .highlight .cs { color: #999999; font-weight: bold; font-style: italic } /* Comment.Special */
10 | .highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
11 | .highlight .gd .x { color: #000000; background-color: #ffaaaa } /* Generic.Deleted.Specific */
12 | .highlight .ge { font-style: italic } /* Generic.Emph */
13 | .highlight .gr { color: #aa0000 } /* Generic.Error */
14 | .highlight .gh { color: #999999 } /* Generic.Heading */
15 | .highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
16 | .highlight .gi .x { color: #000000; background-color: #aaffaa } /* Generic.Inserted.Specific */
17 | .highlight .go { color: #888888 } /* Generic.Output */
18 | .highlight .gp { color: #555555 } /* Generic.Prompt */
19 | .highlight .gs { font-weight: bold } /* Generic.Strong */
20 | .highlight .gu { color: #aaaaaa } /* Generic.Subheading */
21 | .highlight .gt { color: #aa0000 } /* Generic.Traceback */
22 | .highlight .kc { font-weight: bold } /* Keyword.Constant */
23 | .highlight .kd { font-weight: bold } /* Keyword.Declaration */
24 | .highlight .kp { font-weight: bold } /* Keyword.Pseudo */
25 | .highlight .kr { font-weight: bold } /* Keyword.Reserved */
26 | .highlight .kt { color: #445588; font-weight: bold } /* Keyword.Type */
27 | .highlight .m { color: #009999 } /* Literal.Number */
28 | .highlight .s { color: #d14 } /* Literal.String */
29 | .highlight .na { color: #008080 } /* Name.Attribute */
30 | .highlight .nb { color: #0086B3 } /* Name.Builtin */
31 | .highlight .nc { color: #445588; font-weight: bold } /* Name.Class */
32 | .highlight .no { color: #008080 } /* Name.Constant */
33 | .highlight .ni { color: #800080 } /* Name.Entity */
34 | .highlight .ne { color: #990000; font-weight: bold } /* Name.Exception */
35 | .highlight .nf { color: #990000; font-weight: bold } /* Name.Function */
36 | .highlight .nn { color: #555555 } /* Name.Namespace */
37 | .highlight .nt { color: #000080 } /* Name.Tag */
38 | .highlight .nv { color: #008080 } /* Name.Variable */
39 | .highlight .ow { font-weight: bold } /* Operator.Word */
40 | .highlight .w { color: #bbbbbb } /* Text.Whitespace */
41 | .highlight .mf { color: #009999 } /* Literal.Number.Float */
42 | .highlight .mh { color: #009999 } /* Literal.Number.Hex */
43 | .highlight .mi { color: #009999 } /* Literal.Number.Integer */
44 | .highlight .mo { color: #009999 } /* Literal.Number.Oct */
45 | .highlight .sb { color: #d14 } /* Literal.String.Backtick */
46 | .highlight .sc { color: #d14 } /* Literal.String.Char */
47 | .highlight .sd { color: #d14 } /* Literal.String.Doc */
48 | .highlight .s2 { color: #d14 } /* Literal.String.Double */
49 | .highlight .se { color: #d14 } /* Literal.String.Escape */
50 | .highlight .sh { color: #d14 } /* Literal.String.Heredoc */
51 | .highlight .si { color: #d14 } /* Literal.String.Interpol */
52 | .highlight .sx { color: #d14 } /* Literal.String.Other */
53 | .highlight .sr { color: #009926 } /* Literal.String.Regex */
54 | .highlight .s1 { color: #d14 } /* Literal.String.Single */
55 | .highlight .ss { color: #990073 } /* Literal.String.Symbol */
56 | .highlight .bp { color: #999999 } /* Name.Builtin.Pseudo */
57 | .highlight .vc { color: #008080 } /* Name.Variable.Class */
58 | .highlight .vg { color: #008080 } /* Name.Variable.Global */
59 | .highlight .vi { color: #008080 } /* Name.Variable.Instance */
60 | .highlight .il { color: #009999 } /* Literal.Number.Integer.Long */
61 |
--------------------------------------------------------------------------------
/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/the-development/flex/6ed8124bf416f15bf0e9e24645396fff34078a99/favicon.ico
--------------------------------------------------------------------------------
/images/cover.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/the-development/flex/6ed8124bf416f15bf0e9e24645396fff34078a99/images/cover.jpg
--------------------------------------------------------------------------------
/images/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/the-development/flex/6ed8124bf416f15bf0e9e24645396fff34078a99/images/logo.png
--------------------------------------------------------------------------------
/images/sidebar-button.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/the-development/flex/6ed8124bf416f15bf0e9e24645396fff34078a99/images/sidebar-button.png
--------------------------------------------------------------------------------
/index.html:
--------------------------------------------------------------------------------
1 | ---
2 | layout: default
3 | title: Home
4 | ---
5 |
6 | {% assign page = site.posts.first %}
7 | {% assign content = page.content %}
8 | {% include post.html %}
9 |
--------------------------------------------------------------------------------
/scripts/responsive.js:
--------------------------------------------------------------------------------
1 | window.onload = function() {
2 | var sidebar = document.getElementById("sidebar");
3 | var sidebarButton = document.getElementById("sidebar-button");
4 |
5 | function openSidebar(e) {
6 | if (sidebar.className.indexOf("slideIn") != -1) {
7 | sidebar.className = sidebar.className.replace(" slideIn", "");
8 | } else {
9 | sidebar.className = sidebar.className + " slideIn";
10 | }
11 | }
12 |
13 | sidebarButton.addEventListener("click", openSidebar, false);
14 | };
15 |
--------------------------------------------------------------------------------