Skip to content

Commit 2d9ba42

Browse files
committedSep 28, 2021
add UI Initiative
1 parent eb9c605 commit 2d9ba42

14 files changed

+342
-135
lines changed
 

‎.eslintrc.js

+5
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,9 @@
11
module.exports = {
2+
env: {
3+
browser: true,
4+
es2021: true,
5+
node: true,
6+
},
27
extends: ['plugin:react/recommended', 'airbnb-base', 'plugin:prettier/recommended'],
38
plugins: ['react'],
49
parserOptions: {

‎public/i/home-projects/atropos.svg

+6
Unable to render code block

‎public/i/home-projects/swiper.svg

+4
Unable to render code block
Unable to render code block

‎public/i/uiinitiative-banner.jpg

1.4 MB
Unable to render code block

‎src/js/init-uiinititative-plugins.js

+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import $ from 'dom7';
2+
3+
export default function initUiInitiativePlugins() {
4+
const $container = $('.uiinitiative-plugins');
5+
if ($container.length === 0) return;
6+
fetch('https://uiinitiative.com/api/list?type=plugin&tech=Framework7')
7+
.then((res) => res.json())
8+
.then((items) => {
9+
let content = '';
10+
items.forEach((item) => {
11+
content += `
12+
<div class="app">
13+
<a class="app-cover" href="${item.url}" target="_blank" data-hover-text="Get">
14+
<img src="${item.cover}"">
15+
</a>
16+
<div class="app-info">
17+
<div class="app-title">${item.title}</div>
18+
<div class="app-subtitle">${item.subtitle}</div>
19+
</div>
20+
</div>
21+
`;
22+
});
23+
$container.append(content);
24+
});
25+
}
+25
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
import $ from 'dom7';
2+
3+
export default function initUiInitiativeTemplates() {
4+
const $container = $('.uiinitiative-templates');
5+
if ($container.length === 0) return;
6+
fetch('https://uiinitiative.com/api/list?type=template&tech=Framework7')
7+
.then((res) => res.json())
8+
.then((items) => {
9+
let content = '';
10+
items.forEach((item) => {
11+
content += `
12+
<div class="app">
13+
<a class="app-cover" href="${item.url}" target="_blank" data-hover-text="Get">
14+
<img src="${item.cover}"">
15+
</a>
16+
<div class="app-info">
17+
<div class="app-title">${item.title}</div>
18+
<div class="app-subtitle">${item.subtitle}</div>
19+
</div>
20+
</div>
21+
`;
22+
});
23+
$container.append(content);
24+
});
25+
}

‎src/js/main.js

+30-14
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import initDocsNav from './init-docs-nav';
55
import initDocsHeaders from './init-docs-headers';
66
import initDocsColorForm from './init-docs-color-form';
77
import copyToClipboard from './copy-to-clipboard';
8+
import initUiInitiativeTemplates from './init-uiinititative-templates';
9+
import initUiInitiativePlugins from './init-uiinititative-plugins';
810

911
Object.keys(methods).forEach((key) => {
1012
$.fn[key] = methods[key];
@@ -15,14 +17,15 @@ initDocsDevice();
1517
initDocsNav();
1618
initDocsHeaders();
1719
initDocsColorForm();
20+
initUiInitiativeTemplates();
21+
initUiInitiativePlugins();
1822

1923
function trackOutboundClick(url, category) {
2024
if (!window.ga || !url) return;
2125
if (!url) return;
2226
window.ga('send', 'event', category, 'click', url);
2327
}
2428

25-
2629
$('a').on('click', function onClick() {
2730
const url = this.href;
2831
if (!url) return;
@@ -82,27 +85,34 @@ $('.f7-demo-icon i').on('click', function onClick() {
8285
const el = this;
8386
const text = $(el).parent().next().text();
8487
copyToClipboard(text, () => {
85-
const $toastEl = $(`<div class="f7-demo-icons-toast"><b>${text}</b> is copied to clipboard</div>`);
88+
const $toastEl = $(
89+
`<div class="f7-demo-icons-toast"><b>${text}</b> is copied to clipboard</div>`,
90+
);
8691
$toastEl.once('animationend', () => {
8792
$toastEl.remove();
8893
});
8994
$(document.body).append($toastEl);
9095
});
9196
});
9297

93-
9498
// Docs clickable titles
95-
$('.docs-content').find('h2, h3').on('click', function onClick() {
96-
const $h = $(this);
97-
if (!$h.attr('id')) return;
98-
document.location.hash = $h.attr('id');
99-
});
99+
$('.docs-content')
100+
.find('h2, h3')
101+
.on('click', function onClick() {
102+
const $h = $(this);
103+
if (!$h.attr('id')) return;
104+
document.location.hash = $h.attr('id');
105+
});
100106

101107
// Showcase
102108
$('.showcase-apps .app-icon').on('click', function onClick() {
103109
const appHtml = $(this).parents('.app').html();
104110
$('body').append('<div class="showcase-app-preview-backdrop"></div>');
105-
$('body').append(`<div class="showcase-app-preview"><span class="showcase-app-preview-close"></span>${appHtml.replace('<h4>', '<h3>').replace('</h4>', '</h3>')}</div>`);
111+
$('body').append(
112+
`<div class="showcase-app-preview"><span class="showcase-app-preview-close"></span>${appHtml
113+
.replace('<h4>', '<h3>')
114+
.replace('</h4>', '</h3>')}</div>`,
115+
);
106116
$('body').css('overflow', 'hidden');
107117
});
108118
$(document).on('click', '.showcase-app-preview-close, .showcase-app-preview-backdrop', () => {
@@ -111,7 +121,10 @@ $(document).on('click', '.showcase-app-preview-close, .showcase-app-preview-back
111121
});
112122
$(document).on('click', '.app-show-shots a', function onClick(e) {
113123
e.preventDefault();
114-
$(this).parent().hide().parents('.showcase-app-preview')
124+
$(this)
125+
.parent()
126+
.hide()
127+
.parents('.showcase-app-preview')
115128
.find('.app-shots')
116129
.show()
117130
.find('img')
@@ -132,8 +145,9 @@ function fetchGitStats(local) {
132145
return;
133146
}
134147
if (window.fetch) {
135-
window.fetch('https://api.github.com/repos/framework7io/framework7')
136-
.then(res => res.json())
148+
window
149+
.fetch('https://api.github.com/repos/framework7io/framework7')
150+
.then((res) => res.json())
137151
.then((data) => {
138152
if (!data) return;
139153
localStorage.setItem('f7-git-stats-date', new Date().getTime());
@@ -151,7 +165,7 @@ function fetchGitStats(local) {
151165
}
152166
}
153167
const gitStatsDate = localStorage.getItem('f7-git-stats-date');
154-
if (gitStatsDate && (new Date().getTime() - gitStatsDate * 1) < 1000 * 60 * 60) {
168+
if (gitStatsDate && new Date().getTime() - gitStatsDate * 1 < 1000 * 60 * 60) {
155169
fetchGitStats(true);
156170
} else {
157171
fetchGitStats();
@@ -170,7 +184,9 @@ function testAdBlock() {
170184
}
171185
testAd.remove();
172186
if (adBlockEnabled) {
173-
$('.carbon').append('<div class="carbon-placeholder">Support Framework7 development by disabling AdBlock for this website</div>');
187+
$('.carbon').append(
188+
'<div class="carbon-placeholder">Support Framework7 development by disabling AdBlock for this website</div>',
189+
);
174190
}
175191
}, 0);
176192
}

‎src/less/apps.less

+41-6
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
margin-left: auto;
1616
margin-right: auto;
1717
cursor: pointer;
18-
box-shadow: 0px 10px 30px rgba(0,0,0,0.1);
18+
box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.1);
1919
border-radius: 45px;
2020
position: relative;
2121
display: block;
@@ -43,7 +43,7 @@
4343
bottom: 10px;
4444
font-size: 12px;
4545
font-weight: bold;
46-
background: rgba(0,0,0,0.5);
46+
background: rgba(0, 0, 0, 0.5);
4747
color: #fff;
4848
padding: 0 10px;
4949
border-radius: 2em;
@@ -53,8 +53,8 @@
5353
content: attr(data-hover-text);
5454
}
5555
&:hover {
56-
box-shadow: 0px 40px 80px rgba(0,0,0,0.1);
57-
transform: translate3d(0,0,0) scale(1.05);
56+
box-shadow: 0px 40px 80px rgba(0, 0, 0, 0.1);
57+
transform: translate3d(0, 0, 0) scale(1.05);
5858
~ .app-info {
5959
transform: translate3d(0, 10px, 0);
6060
}
@@ -107,15 +107,38 @@
107107
margin-right: 2px;
108108
}
109109
}
110+
&.uiinitiative-apps {
111+
.app {
112+
width: 33.33%;
113+
}
114+
.app-title {
115+
line-height: inherit;
116+
}
117+
.app-subtitle {
118+
font-size: 14px;
119+
}
120+
.app-cover {
121+
display: block;
122+
transition: 400ms;
123+
width: calc(100% - 32px);
124+
margin: 0 auto;
125+
&:hover {
126+
transform: scale(1.05);
127+
}
110128

129+
img {
130+
display: block;
131+
border-radius: 12px;
132+
}
133+
}
134+
}
111135
}
112136
@media (max-width: 1023px) {
113137
.apps {
114138
.app {
115139
width: 100% / 3;
116140
}
117141
}
118-
119142
}
120143
@media (max-width: 800px) {
121144
.apps {
@@ -129,6 +152,12 @@
129152
.app-title {
130153
font-size: 18px;
131154
}
155+
&.uiinitiative-apps .app {
156+
width: 50%;
157+
.app-cover {
158+
width: calc(100% - 16px);
159+
}
160+
}
132161
}
133162
}
134163
@media (max-width: 600px) {
@@ -165,5 +194,11 @@
165194
border-radius: 8vw;
166195
height: 37vw;
167196
}
197+
&.uiinitiative-apps .app {
198+
width: 100%;
199+
.app-cover {
200+
width: 100%;
201+
}
202+
}
168203
}
169-
}
204+
}

‎src/less/home-page.less

+82-12
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,8 @@
3131
&.home-block-red {
3232
background: @redColor;
3333
color: #fff;
34-
h2, h3 {
34+
h2,
35+
h3 {
3536
color: #fff;
3637
}
3738
}
@@ -65,7 +66,6 @@
6566
a {
6667
color: #fff;
6768
}
68-
6969
}
7070
}
7171
@media (min-width: 801px) {
@@ -75,12 +75,14 @@
7575
display: flex;
7676
flex-wrap: wrap;
7777
}
78-
h2, .text {
78+
h2,
79+
.text {
7980
text-align: left;
8081
width: 60%;
8182
margin: 0;
8283
}
83-
.logos, .ui {
84+
.logos,
85+
.ui {
8486
position: absolute;
8587
top: 50%;
8688
transform: translateY(-50%);
@@ -100,15 +102,17 @@
100102
.center {
101103
justify-content: flex-start;
102104
}
103-
.logos, .ui {
105+
.logos,
106+
.ui {
104107
right: 40px;
105108
}
106109
}
107110
.home-block-right {
108111
.center {
109112
justify-content: flex-end;
110113
}
111-
.logos, .ui {
114+
.logos,
115+
.ui {
112116
left: 40px;
113117
}
114118
}
@@ -161,7 +165,7 @@
161165
font-size: 24px;
162166
margin-bottom: 40px;
163167
border-radius: 15px;
164-
box-shadow: 0px 10px 30px rgba(0,0,0,0.15);
168+
box-shadow: 0px 10px 30px rgba(0, 0, 0, 0.15);
165169
.monospace();
166170
span {
167171
user-select: none;
@@ -197,6 +201,75 @@
197201
}
198202
}
199203
}
204+
.home-uiinitiative {
205+
img {
206+
width: 100%;
207+
display: block;
208+
border-radius: 16px;
209+
transition-duration: 200ms;
210+
&:hover {
211+
transform: scale(1.015);
212+
box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.5);
213+
}
214+
}
215+
}
216+
.home-projects {
217+
.text {
218+
display: flex;
219+
}
220+
a {
221+
display: flex;
222+
flex-direction: column;
223+
align-items: center;
224+
color: inherit;
225+
padding: 16px;
226+
border: 1px solid #eee;
227+
border-radius: 12px;
228+
width: 100%;
229+
transition-duration: 200ms;
230+
box-sizing: border-box;
231+
b,
232+
span {
233+
display: block;
234+
}
235+
&:hover {
236+
text-decoration: none;
237+
transform: scale(1.025);
238+
border-color: transparent;
239+
box-shadow: 0px 20px 40px rgba(0, 0, 0, 0.2);
240+
}
241+
}
242+
a:nth-child(2) {
243+
margin: 0 32px;
244+
}
245+
span {
246+
font-size: 0.75em;
247+
font-weight: normal;
248+
}
249+
img {
250+
width: 128px;
251+
margin-bottom: 24px;
252+
}
253+
@media (max-width: 600px) {
254+
.text {
255+
display: block;
256+
}
257+
a {
258+
flex-direction: row;
259+
text-align: left;
260+
border-radius: 8px;
261+
}
262+
a:nth-child(2) {
263+
margin: 16px 0px;
264+
}
265+
img {
266+
width: 64px;
267+
height: 64px;
268+
margin-right: 16px;
269+
margin-bottom: 0;
270+
}
271+
}
272+
}
200273
.home-sponsors {
201274
.home-sponsors-list {
202275
display: flex;
@@ -259,11 +332,11 @@
259332
border-radius: 4px;
260333
box-sizing: border-box;
261334
&.sponsor-badge-platinum {
262-
background: linear-gradient(to right bottom,#ffddf4 45%,#f1b7e7 55%);
335+
background: linear-gradient(to right bottom, #ffddf4 45%, #f1b7e7 55%);
263336
box-shadow: 0px 0px 0px 1px #f1b7e7;
264337
}
265338
&.sponsor-badge-gold {
266-
background: linear-gradient(to right bottom,#fffc2c 50%,#e1e206 50%);
339+
background: linear-gradient(to right bottom, #fffc2c 50%, #e1e206 50%);
267340
box-shadow: 0px 0px 0px 1px #e1e206;
268341
}
269342
&.sponsor-badge-silver {
@@ -274,7 +347,6 @@
274347
display: none;
275348
}
276349
}
277-
278350
}
279351
@media (max-width: 800px) {
280352
.home-block {
@@ -316,7 +388,6 @@
316388
margin-left: 10px;
317389
}
318390
}
319-
320391
}
321392
@media (max-width: 600px) {
322393
.home-block {
@@ -381,5 +452,4 @@
381452
color: #fff;
382453
}
383454
}
384-
385455
}

‎src/pug/index.pug

+29
Original file line numberDiff line numberDiff line change
@@ -160,6 +160,35 @@ html
160160
p Framework7 is an MIT-licensed open source project with its ongoing development made possible entirely by the support of #[a(href="/sponsors/") sponsors] and #[a(href="https://github.com/framework7io/framework7/blob/master/BACKERS.md" target="_blank") these awesome backers].
161161
p
162162
a(href="https://www.patreon.com/framework7", target="_blank").home-support-button Support Framework7 #[i.f7-icons hand_thumbsup_fill]
163+
.home-block.home-uiinitiative
164+
.center
165+
h2 UI Initiative
166+
.text
167+
p Premium Framework7 templates & plugins for Framework7 patrons
168+
p
169+
a(href="https://uiinitiative.com" target="_blank")
170+
img(src="/i/uiinitiative-banner.jpg")
171+
.home-block.home-projects
172+
.center
173+
h2 More Of Our Projects
174+
.text
175+
a(href="https://tailwind-mobile.com" target="_blank")
176+
img(src="/i/home-projects/tailwind-mobile.svg")
177+
div
178+
b Tailwind Mobile
179+
span Pixel perfect mobile UI components built with Tailwind CSS
180+
a(href="https://tailwind-mobile.com" target="_blank")
181+
img(src="/i/home-projects/atropos.svg")
182+
div
183+
b Atropos
184+
span Stunning touch-friendly 3D parallax hover effects
185+
a(href="https://swiperjs.com" target="_blank")
186+
img(src="/i/home-projects/swiper.svg")
187+
div
188+
b Swiper
189+
span Most modern mobile touch slider
190+
191+
163192
.home-block.home-sponsors
164193
.center
165194
h2 Sponsors

‎src/pug/plugins/index.pug

+4
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ block content
1010
- var plugins = getYamlData('plugins/plugins.yml');
1111

1212
h1.text-align-center Framework7 Plugins
13+
h2.text-align-center Community Plugins
1314
.apps.plugins
1415
each app in plugins
1516
.app
@@ -32,6 +33,9 @@ block content
3233
if app.previewUrl
3334
a(href=app.previewUrl, target="_blank") Preview
3435
.app-description #{app.description}
36+
h2.text-align-center UI Initiative Plugins
37+
p.text-align-center Premium Framework7 plugins from <a href="https://uiinitiative.com" target="_blank">UI Initiative</a>
38+
.apps.plugins.uiinitiative-apps.uiinitiative-plugins
3539

3640

3741

‎src/pug/templates/index.pug

+3
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,9 @@ block content
3535
.app-buttons
3636
a(href="https://www.thoriumbuilder.com/", target="_blank") Learn More
3737
.app-description Native macOs app - full visual Framework7 app builder
38+
h2.text-align-center UI Initiative Templates
39+
p.text-align-center Premium Framework7 app templates from <a href="https://uiinitiative.com" target="_blank">UI Initiative</a>
40+
.apps.templates.uiinitiative-apps.uiinitiative-templates
3841
if (templates.official)
3942
h2.text-align-center Official Framework7 Templates
4043
.apps.templates

‎src/pug/tutorials/tutorials.yml

+83-103
Original file line numberDiff line numberDiff line change
@@ -1,272 +1,252 @@
1-
-
2-
date: March 31, 2021
1+
- date: March 31, 2021
32
video: false
4-
title: "How to Deploy a Framework7 App to AWS via CI/CD"
3+
title: 'How to Deploy a Framework7 App to AWS via CI/CD'
54
url: https://dev.to/timo_ernst/how-to-deploy-a-framework7-app-to-aws-via-ci-cd-56if
65
author:
76
name: Timo Ernst
87
url: https://twitter.com/timo_ernst
98
badges:
10-
- v6
11-
-
12-
date: October 7, 2019
9+
- v6
10+
- date: March 5, 2021
1311
video: false
14-
title: "Migration To Framework7 v5"
12+
title: 'Framework7, Next.js & Server-Side Rendering? Yes!'
13+
url: https://blog.framework7.io/framework7-next-js-server-side-rendering-yes-1f6c9334dc03
14+
author:
15+
name: Vladimir Kharlampidi
16+
url: https://twitter.com/nolimits4web
17+
badges:
18+
- v6
19+
- date: October 7, 2019
20+
video: false
21+
title: 'Migration To Framework7 v5'
1522
url: https://blog.framework7.io/migration-to-framework7-v5-1374257bb5a7
1623
author:
1724
name: Vladimir Kharlampidi
1825
url: https://twitter.com/nolimits4web
1926
badges:
20-
- v5
21-
-
22-
date: Aug 21, 2019
27+
- v5
28+
- date: Aug 21, 2019
2329
video: true
24-
title: "User Authentication for Framework7 with Firebase"
30+
title: 'User Authentication for Framework7 with Firebase'
2531
url: https://youtu.be/cYlSZLV5qN4
2632
author:
2733
name: Timo Ernst
2834
url: https://www.timo-ernst.net
2935
badges:
30-
- v4
31-
-
32-
date: May 21, 2019
36+
- v4
37+
- date: May 21, 2019
3338
video: true
34-
title: "Get Started with Framework7 in 2019 using CLI Tutorial"
39+
title: 'Get Started with Framework7 in 2019 using CLI Tutorial'
3540
url: https://youtu.be/65hfVB49PZU
3641
author:
3742
name: Timo Ernst
3843
url: https://www.timo-ernst.net
3944
badges:
40-
- v4
41-
-
42-
date: February 12, 2019
45+
- v4
46+
- date: February 12, 2019
4347
video: false
44-
title: "Migration To Framework7 v4"
48+
title: 'Migration To Framework7 v4'
4549
url: https://blog.framework7.io/migration-to-framework7-v4-89d1ce49f4c0
4650
author:
4751
name: Vladimir Kharlampidi
4852
url: https://twitter.com/nolimits4web
4953
badges:
50-
- v4
51-
-
52-
date: December 5, 2018
54+
- v4
55+
- date: December 5, 2018
5356
video: true
54-
title: "How to use the Calendar Component in Framework7"
57+
title: 'How to use the Calendar Component in Framework7'
5558
url: https://youtu.be/qYteZaz_pUc
5659
author:
5760
name: Timo Ernst
5861
url: http://www.timo-ernst.net
5962
badges:
60-
- v3
61-
-
62-
date: November 2, 2018
63+
- v3
64+
- date: November 2, 2018
6365
video: true
64-
title: "Auto-Complete Search Fields with React, Node and Framework7 tutorial"
66+
title: 'Auto-Complete Search Fields with React, Node and Framework7 tutorial'
6567
url: https://youtu.be/6VEGkAdPTkU
6668
author:
6769
name: Timo Ernst
6870
url: http://www.timo-ernst.net
6971
badges:
70-
- v3
71-
-
72-
date: July 9, 2018
72+
- v3
73+
- date: July 9, 2018
7374
video: false
74-
title: "Migration To Framework7 v3"
75+
title: 'Migration To Framework7 v3'
7576
url: https://blog.framework7.io/migration-to-framework7-v3-928a21a1eac9
7677
author:
7778
name: Vladimir Kharlampidi
7879
url: https://twitter.com/nolimits4web
7980
badges:
80-
- v3
81-
-
82-
video: true
81+
- v3
82+
- video: true
8383
date: May 28th, 2018
84-
title: "Deploy Framework7 apps to Android with PhoneGap Cordova | Beginner Tutorial"
84+
title: 'Deploy Framework7 apps to Android with PhoneGap Cordova | Beginner Tutorial'
8585
url: https://www.timo-ernst.net/blog/2018/05/28/deploy-framework7-apps-to-android-with-phonegap-cordova-beginner-tutorial/
8686
author:
8787
name: Timo Ernst
8888
url: https://www.timo-ernst.net
89-
-
90-
video: true
89+
- video: true
9190
date: April 11, 2018
92-
title: "How to use Framework7 V2 Router | Video Tutorial"
91+
title: 'How to use Framework7 V2 Router | Video Tutorial'
9392
url: https://www.timo-ernst.net/blog/2018/04/11/how-to-use-framework7-v2-router-tutorial/
9493
author:
9594
name: Timo Ernst
9695
url: https://www.timo-ernst.net
9796
badges:
98-
- v2
99-
-
100-
date: Jan 14, 2018
97+
- v2
98+
- date: Jan 14, 2018
10199
video: false
102-
title: "Migration To Framework7 v2"
100+
title: 'Migration To Framework7 v2'
103101
url: https://blog.framework7.io/migration-to-framework7-v2-eb6dc38ede3b
104102
author:
105103
name: Vladimir Kharlampidi
106104
url: https://twitter.com/nolimits4web
107105
badges:
108-
- v2
109-
-
110-
date: Sep 8, 2017
106+
- v2
107+
- date: Sep 8, 2017
111108
video: false
112-
title: "Mastering Framework7 v2 Router"
109+
title: 'Mastering Framework7 v2 Router'
113110
url: https://blog.framework7.io/mastering-v2-router-958ea2dbd24f
114111
author:
115112
name: Vladimir Kharlampidi
116113
url: https://twitter.com/nolimits4web
117114
badges:
118-
- v2
119-
-
120-
date: July 24, 2017
115+
- v2
116+
- date: July 24, 2017
121117
video: true
122-
title: "Video Tutorial: How to use Vuex with Framework7"
118+
title: 'Video Tutorial: How to use Vuex with Framework7'
123119
url: https://www.timo-ernst.net/blog/2017/07/24/use-vuex-framework7/
124120
author:
125121
name: Timo Ernst
126122
url: https://www.timo-ernst.net
127123
badges:
128-
- v1
129-
-
130-
date: June 6, 2017,
124+
- v1
125+
- date: June 6, 2017,
131126
title: Login app template with Framework7-Vue Webpack hot reload + Cordova + Icon/Splash screen generation
132127
url: https://github.com/daniegarcia254/Framework7-Vue-Webpack-Cordova
133128
author:
134129
name: Daniel García
135130
url: https://github.com/daniegarcia254/
136131
badges:
137-
- v1
138-
-
139-
video: true
132+
- v1
133+
- video: true
140134
date: March 20, 2017
141-
title: "Video Tutorial: Build a chat app in 20 minutes with Vue.js and Framework7"
135+
title: 'Video Tutorial: Build a chat app in 20 minutes with Vue.js and Framework7'
142136
url: https://www.timo-ernst.net/blog/2017/03/20/build-chat-app-20-minutes/
143137
author:
144138
name: Timo Ernst
145139
url: https://www.timo-ernst.net
146140
badges:
147-
- v1
148-
-
149-
video: true
141+
- v1
142+
- video: true
150143
date: January 9, 2017
151-
title: "Video Tutorial: Create a Twitter app with Vue.js, Framework7 and PhoneGap"
144+
title: 'Video Tutorial: Create a Twitter app with Vue.js, Framework7 and PhoneGap'
152145
url: https://www.timo-ernst.net/blog/2017/01/09/tutorial-create-a-twitter-app-with-vuejs-framework7-phonegap-and-webpack-episode-01/
153146
author:
154147
name: Timo Ernst
155148
url: https://www.timo-ernst.net
156149
badges:
157-
- v1
158-
-
159-
date: December 4, 2016
160-
title: "Introducing: Star Track by PhoneGap"
150+
- v1
151+
- date: December 4, 2016
152+
title: 'Introducing: Star Track by PhoneGap'
161153
url: http://phonegap.com/blog/2016/04/21/introducing-star-track-by-phonegap/
162154
author:
163155
name: Tommy-Carlos Williams / PhoneGap
164156
url: https://github.com/devgeeks
165157
badges:
166-
- v1
167-
-
168-
date: December 4, 2016
158+
- v1
159+
- date: December 4, 2016
169160
title: PhoneGap Day EU Essentials Workshop 2016
170161
url: http://hollyschinsky.github.io/pgday-eu-star-track/index.html
171162
author:
172163
name: Holly Schinsky / PhoneGap
173164
url: http://devgirl.org/
174165
badges:
175-
- v1
176-
-
177-
date: December 4, 2016
166+
- v1
167+
- date: December 4, 2016
178168
title: Framework7 Tutorials
179169
url: https://www.tutorialspoint.com/framework7/index.htm
180170
author:
181171
name: tutorialspoint
182172
url: https://www.tutorialspoint.com/index.htm
183173
badges:
184-
- v1
185-
-
186-
video: true
174+
- v1
175+
- video: true
187176
date: December 4, 2016
188177
title: Framework7 Video Tutorials
189178
url: https://www.youtube.com/playlist?list=PLnBvgoOXZNCM2C5hoDiLuRC2ufb-2LG9j
190179
author:
191180
name: Braintem
192181
url: https://www.youtube.com/channel/UCfjlsXMcayeWoqQzE_8ALaQ
193182
badges:
194-
- v1
195-
-
196-
video: true
183+
- v1
184+
- video: true
197185
date: December 4, 2016
198-
title: "Video Screencast: How to get started with Framework7, VueJS and Webpack"
186+
title: 'Video Screencast: How to get started with Framework7, VueJS and Webpack'
199187
url: https://www.timo-ernst.net/blog/2016/11/13/how-to-get-started-with-framework7-vuejs-and-webpack/
200188
author:
201189
name: Timo Ernst
202190
url: http://www.timo-ernst.net
203191
badges:
204-
- v1
205-
-
206-
video: true
192+
- v1
193+
- video: true
207194
date: November 5, 2015
208-
title: "Video Screencast: How to use Framework7 with Angular 1.x"
195+
title: 'Video Screencast: How to use Framework7 with Angular 1.x'
209196
url: http://www.timo-ernst.net/blog/2015/11/05/video-screencast-how-to-use-framework7-with-angularjs/
210197
author:
211198
name: Timo Ernst
212199
url: http://www.timo-ernst.net
213200
badges:
214-
- v1
215-
-
216-
date: May 31, 2015,
201+
- v1
202+
- date: May 31, 2015,
217203
title: Multilanguage application for Phonegap with Gettext, Jad and po2json (on Russian)
218204
url: http://ekhlakov.blogspot.ru/2015/05/phonegap.html
219205
author:
220206
name: Oleg Ekhlakov
221207
url: http://ekhlakov.blogspot.com/
222208
badges:
223-
- v1
224-
-
225-
date: April 11, 2015,
209+
- v1
210+
- date: April 11, 2015,
226211
title: Framework7 and Parse for User login
227212
url: http://www.htmlcenter.com/blog/framework7-and-parse-for-user-login/
228213
author:
229214
name: Saul Zukauskas (HTML Center)
230215
url: http://www.htmlcenter.com/
231216
badges:
232-
- v1
233-
-
234-
date: April 5, 2015,
217+
- v1
218+
- date: April 5, 2015,
235219
title: A movie-list demo app built with Framework7 and Angular 1.x
236220
url: http://www.timo-ernst.net/2015/04/a-movie-list-demo-app-built-with-framework7-and-angular/
237221
author:
238222
name: Timo Ernst
239223
url: http://www.timo-ernst.net/
240224
badges:
241-
- v1
242-
-
243-
title: Framework7 & PhoneGap – Getting Started
225+
- v1
226+
- title: Framework7 & PhoneGap – Getting Started
244227
url: http://thejackalofjavascript.com/framework7-phonegap-getting-started/
245228
author:
246229
name: The Jackal of Javascript
247230
url: http://thejackalofjavascript.com/
248231
badges:
249-
- v1
250-
-
251-
video: true
232+
- v1
233+
- video: true
252234
title: Integrating Framework7 into Rails
253235
url: http://codemy.net/posts/integrating-framework7-into-rails
254236
author:
255237
name: Codemy.net
256238
url: http://codemy.net/
257239
badges:
258-
- v1
259-
-
260-
video: true
240+
- v1
241+
- video: true
261242
title: Filling out Mobile Site UI (Variants + Framework7)
262243
url: http://codemy.net/posts/filling-out-mobile-site-ui
263244
author:
264245
name: Codemy.net
265246
url: http://codemy.net/
266247
badges:
267-
- v1
268-
-
269-
video: true
248+
- v1
249+
- video: true
270250
title: Optimizing Rails App for Framework7
271251
url: http://codemy.net/posts/optimizing-mobile-site
272252
author:

0 commit comments

Comments
 (0)
Please sign in to comment.