|
5 | 5 | {{ $t('pages.home.ecosystem') }}
|
6 | 6 | </h2>
|
7 | 7 | <div class="page-wrapper">
|
8 |
| - <div class="md-layout md-gutter"> |
9 |
| - <div class="md-layout-item md-small-size-100"> |
10 |
| - <md-card md-with-hover class="md-elevation-2 full-height"> |
11 |
| - <div class="content"> |
12 |
| - <div class="md-title">Advanced Webpack SPA</div> |
13 |
| - <p>A full-featured Webpack + Vue Material setup with hot-reload, lint-on-save, unit testing, scss preprocessing & css extraction.</p> |
14 |
| - </div> |
15 |
| - <div class="image webpack"> |
16 |
| - <img src="/assets/boilerplates/webpack-advanced.png" alt="webpack"> |
17 |
| - </div> |
| 8 | + <div class="md-layout md-alignment-top-center"> |
| 9 | + <div class="md-layout-item md-small-size-100 md-size-50"> |
| 10 | + <md-card md-with-hover class="md-elevation-2 md-primary" md-theme="blue-card" @click.native="openLink('https://github.com/vuematerial/webpack')"> |
| 11 | + <md-ripple> |
| 12 | + <md-card-content> |
| 13 | + <div class="content"> |
| 14 | + <div class="md-title">Advanced Webpack SPA</div> |
| 15 | + <p>A full-featured Webpack + Vue Material setup with hot-reload, lint-on-save, unit testing, scss preprocessing & css extraction.</p> |
| 16 | + </div> |
| 17 | + <div class="image"> |
| 18 | + <img src="/assets/boilerplates/webpack-advanced.png" alt="webpack"> |
| 19 | + </div> |
| 20 | + </md-card-content> |
| 21 | + </md-ripple> |
18 | 22 | </md-card>
|
19 | 23 | </div>
|
20 |
| - <div class="md-layout-item md-small-size-100"> |
21 |
| - <md-card md-with-hover class="md-elevation-2 full-height"> |
22 |
| - <div class="content"> |
23 |
| - <div class="md-title">NuxtJs Universal</div> |
24 |
| - <p>Nuxt.js is a framework for creating Universal Vue.js Applications. All the configuration needed to make your development of a Vue.js Application Server Rendered more enjoyable.</p> |
25 |
| - </div> |
26 |
| - <div class="image nuxt"> |
27 |
| - <img src="/assets/boilerplates/nuxt.png" alt="nuxtjs"> |
28 |
| - </div> |
| 24 | + <div class="md-layout-item md-small-size-100 md-size-30"> |
| 25 | + <md-card md-with-hover class="md-elevation-2 flying" @click.native="$router.push('/getting-started')"> |
| 26 | + <md-ripple> |
| 27 | + <md-card-content> |
| 28 | + <div class="content"> |
| 29 | + <div class="md-title">Single HTML file</div> |
| 30 | + <p>The simplest possible Vue Material setup in a single HTML file. But without SCSS or ES7.</p> |
| 31 | + </div> |
| 32 | + <img src="/assets/boilerplates/html.png" alt="html"> |
| 33 | + </md-card-content> |
| 34 | + </md-ripple> |
29 | 35 | </md-card>
|
30 | 36 | </div>
|
31 |
| - <div class="md-layout-item md-small-size-100"> |
32 |
| - <md-card md-with-hover class="md-elevation-2 flying"> |
33 |
| - <div class="content"> |
34 |
| - <div class="md-title">Single HTML file</div> |
35 |
| - <p>The simplest possible Vue Material setup in a single HTML file. But without SCSS or ES7.</p> |
36 |
| - </div> |
37 |
| - <img src="/assets/boilerplates/html.png" alt=""> |
| 37 | + <div class="md-layout-item md-small-size-100 md-size-30"> |
| 38 | + <md-card md-with-hover class="md-elevation-2 flying" @click.native="openLink('CODEPEN')"> |
| 39 | + <md-ripple> |
| 40 | + <md-card-content> |
| 41 | + <div class="content"> |
| 42 | + <div class="md-title">Codepen for prototyping</div> |
| 43 | + <p>For fast prototyping, examples or issues reports is best to use codepen.</p> |
| 44 | + </div> |
| 45 | + <img src="/assets/boilerplates/codepen.svg" alt="codepen"> |
| 46 | + </md-card-content> |
| 47 | + </md-ripple> |
38 | 48 | </md-card>
|
39 |
| - <md-card md-with-hover class="md-elevation-2 flying"> |
40 |
| - <div class="content"> |
41 |
| - <div class="md-title">Codepen for prototyping</div> |
42 |
| - <p>For fast prototyping, examples or issues reports is best to use codepen.</p> |
43 |
| - </div> |
44 |
| - <img src="/assets/boilerplates/codepen.svg" alt=""> |
| 49 | + </div> |
| 50 | + <div class="md-layout-item md-small-size-100 md-size-50"> |
| 51 | + <md-card md-with-hover class="md-elevation-2 md-primary" md-theme="green-card" @click.native="openLink('https://github.com/vuematerial/nuxtjs')"> |
| 52 | + <md-ripple> |
| 53 | + <md-card-content> |
| 54 | + <div class="content"> |
| 55 | + <div class="md-title">Nuxt.js Universal</div> |
| 56 | + <p>Nuxt.js is a framework for creating Universal Vue.js Applications. All the configuration needed to make your development of a Vue.js Application Server Rendered more enjoyable.</p> |
| 57 | + </div> |
| 58 | + <div class="image"> |
| 59 | + <img src="/assets/boilerplates/nuxt.png" alt="nuxtjs"> |
| 60 | + </div> |
| 61 | + </md-card-content> |
| 62 | + </md-ripple> |
45 | 63 | </md-card>
|
46 | 64 | </div>
|
47 | 65 | </div>
|
|
51 | 69 |
|
52 | 70 | <script>
|
53 | 71 | export default {
|
54 |
| - name: 'HomeEcosystem' |
| 72 | + name: 'HomeEcosystem', |
| 73 | + methods: { |
| 74 | + openLink (link) { |
| 75 | + window.open(link, '_blank') |
| 76 | + } |
| 77 | + } |
55 | 78 | }
|
56 | 79 | </script>
|
57 | 80 |
|
58 | 81 | <style lang="scss" scoped>
|
59 | 82 | @import "~vue-material/components/MdAnimation/variables";
|
60 | 83 | @import "~vue-material/components/MdLayout/mixins";
|
61 | 84 |
|
| 85 | + @import "~vue-material/theme/engine"; |
| 86 | +
|
| 87 | + @include md-register-theme("blue-card", ( |
| 88 | + primary: md-get-palette-color(blue, A200) |
| 89 | + )); |
| 90 | + @include md-register-theme("green-card", ( |
| 91 | + primary: md-get-palette-color(teal, 500) |
| 92 | + )); |
| 93 | +
|
| 94 | + @import "~vue-material/base/theme"; |
| 95 | + @import "~vue-material/components/MdCard/theme"; |
| 96 | +
|
62 | 97 | .home-ecosystem {
|
63 | 98 | width: calc(100% + 32px);
|
64 | 99 | padding-bottom: 28px;
|
65 | 100 | margin: 0 -16px;
|
66 | 101 | background: #f5f5f5;
|
67 |
| - .md-layout-item { |
68 |
| - @include md-layout-small { |
69 |
| - margin-top: 16px; |
| 102 | + .md-layout { |
| 103 | + align-items: stretch; |
| 104 | + padding: 32px 0; |
| 105 | + margin-right: -8px; |
| 106 | + margin-left: -8px; |
| 107 | + .md-layout-item { |
| 108 | + padding-right: 8px; |
| 109 | + padding-left: 8px; |
| 110 | + margin-bottom: 16px; |
70 | 111 | }
|
71 | 112 | }
|
72 | 113 | .md-card {
|
73 |
| - padding: 16px; |
74 |
| - display: flex; |
75 |
| - margin-bottom: 16px; |
76 |
| - flex-direction: column; |
77 | 114 | position: relative;
|
78 | 115 | overflow: hidden;
|
79 | 116 | background: #fff;
|
80 |
| - &.full-height { |
| 117 | + min-height: 270px; |
| 118 | + height: 100%; |
| 119 | + .md-card-content { |
| 120 | + display: flex; |
| 121 | + padding: 16px; |
81 | 122 | height: 100%;
|
82 | 123 | }
|
| 124 | + &.row { |
| 125 | + flex-direction: row; |
| 126 | + } |
| 127 | + &.column { |
| 128 | + flex-direction: column; |
| 129 | + } |
83 | 130 | .content {
|
84 | 131 | z-index: 1;
|
85 | 132 | flex-grow: 1;
|
86 | 133 | }
|
87 | 134 | .image {
|
88 |
| - padding: 16px; |
89 |
| - margin: 16px -16px -16px -16px; |
90 |
| - max-height: 200px; |
| 135 | + width: 100%; |
91 | 136 | overflow: hidden;
|
92 | 137 | text-align: center;
|
| 138 | + display: flex; |
| 139 | + align-items: center; |
| 140 | + justify-content: center; |
93 | 141 | img {
|
94 |
| - max-height: 180px; |
95 |
| - } |
96 |
| - &.nuxt { |
97 |
| - background: #64D1A1; |
98 |
| - } |
99 |
| - &.webpack { |
100 |
| - background: #8ED6FB; |
| 142 | + max-height: 160px; |
101 | 143 | }
|
102 | 144 | }
|
103 | 145 | &.flying {
|
| 146 | + p { |
| 147 | + margin-right: 80px; |
| 148 | + } |
104 | 149 | img {
|
105 | 150 | position: absolute;
|
106 | 151 | bottom: -40px;
|
107 | 152 | right: -40px;
|
108 | 153 | max-height: 160px;
|
109 | 154 | z-index: 0;
|
| 155 | + opacity: .7; |
110 | 156 | }
|
111 | 157 | }
|
112 | 158 | }
|
|
0 commit comments