include MDC

master
mashiro 5 years ago
parent 712dafb679
commit 50bbc4b71f
  1. 14
      README.md
  2. 356
      dist/bundle.css
  3. 1505
      dist/bundle.js
  4. 35
      index.html
  5. 1270
      package-lock.json
  6. 11
      package.json
  7. 9
      src/scss/index.scss
  8. 5
      src/scss/scheme.scss
  9. 2
      src/scss/size.scss
  10. 2
      src/ts/index.ts
  11. 1
      tsconfig.json
  12. 39
      webpack.config.js

@ -0,0 +1,14 @@
Sakura v2
====
I'll build the basical templates here, the stylesheets and scripts in `dist` folder should work on WordPress front end as well.
```bash
npm install
# Run dev server
npm start
# Build
npm run build
```
Test server on <http://localhost:8080/>

356
dist/bundle.css vendored

@ -0,0 +1,356 @@
.mdc-button {
font-family: Roboto, sans-serif;
-moz-osx-font-smoothing: grayscale;
-webkit-font-smoothing: antialiased;
font-size: 0.875rem;
line-height: 2.25rem;
font-weight: 500;
letter-spacing: 0.08929em;
text-decoration: none;
text-transform: uppercase;
padding: 0 8px 0 8px;
display: -webkit-inline-box;
display: inline-flex;
position: relative;
-webkit-box-align: center;
align-items: center;
-webkit-box-pack: center;
justify-content: center;
box-sizing: border-box;
min-width: 64px;
height: 36px;
border: none;
outline: none;
/* @alternate */
line-height: inherit;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-appearance: none;
overflow: hidden;
vertical-align: middle;
border-radius: 4px; }
.mdc-button::-moz-focus-inner {
padding: 0;
border: 0; }
.mdc-button:active {
outline: none; }
.mdc-button:hover {
cursor: pointer; }
.mdc-button:disabled {
background-color: transparent;
color: rgba(0, 0, 0, 0.37);
cursor: default;
pointer-events: none; }
.mdc-button.mdc-button--dense {
border-radius: 4px; }
.mdc-button:not(:disabled) {
background-color: transparent; }
.mdc-button .mdc-button__icon {
/* @noflip */
margin-left: 0;
/* @noflip */
margin-right: 8px;
display: inline-block;
width: 18px;
height: 18px;
font-size: 18px;
vertical-align: top; }
[dir="rtl"] .mdc-button .mdc-button__icon, .mdc-button .mdc-button__icon[dir="rtl"] {
/* @noflip */
margin-left: 8px;
/* @noflip */
margin-right: 0; }
.mdc-button:not(:disabled) {
color: #6200ee;
/* @alternate */
color: var(--mdc-theme-primary, #6200ee); }
.mdc-button__label + .mdc-button__icon {
/* @noflip */
margin-left: 8px;
/* @noflip */
margin-right: 0; }
[dir="rtl"] .mdc-button__label + .mdc-button__icon, .mdc-button__label + .mdc-button__icon[dir="rtl"] {
/* @noflip */
margin-left: 0;
/* @noflip */
margin-right: 8px; }
svg.mdc-button__icon {
fill: currentColor; }
.mdc-button--raised .mdc-button__icon,
.mdc-button--unelevated .mdc-button__icon,
.mdc-button--outlined .mdc-button__icon {
/* @noflip */
margin-left: -4px;
/* @noflip */
margin-right: 8px; }
[dir="rtl"] .mdc-button--raised .mdc-button__icon, .mdc-button--raised .mdc-button__icon[dir="rtl"], [dir="rtl"]
.mdc-button--unelevated .mdc-button__icon,
.mdc-button--unelevated .mdc-button__icon[dir="rtl"], [dir="rtl"]
.mdc-button--outlined .mdc-button__icon,
.mdc-button--outlined .mdc-button__icon[dir="rtl"] {
/* @noflip */
margin-left: 8px;
/* @noflip */
margin-right: -4px; }
.mdc-button--raised .mdc-button__label + .mdc-button__icon,
.mdc-button--unelevated .mdc-button__label + .mdc-button__icon,
.mdc-button--outlined .mdc-button__label + .mdc-button__icon {
/* @noflip */
margin-left: 8px;
/* @noflip */
margin-right: -4px; }
[dir="rtl"] .mdc-button--raised .mdc-button__label + .mdc-button__icon, .mdc-button--raised .mdc-button__label + .mdc-button__icon[dir="rtl"], [dir="rtl"]
.mdc-button--unelevated .mdc-button__label + .mdc-button__icon,
.mdc-button--unelevated .mdc-button__label + .mdc-button__icon[dir="rtl"], [dir="rtl"]
.mdc-button--outlined .mdc-button__label + .mdc-button__icon,
.mdc-button--outlined .mdc-button__label + .mdc-button__icon[dir="rtl"] {
/* @noflip */
margin-left: -4px;
/* @noflip */
margin-right: 8px; }
.mdc-button--raised,
.mdc-button--unelevated {
padding: 0 16px 0 16px; }
.mdc-button--raised:disabled,
.mdc-button--unelevated:disabled {
background-color: rgba(0, 0, 0, 0.12);
color: rgba(0, 0, 0, 0.37); }
.mdc-button--raised:not(:disabled),
.mdc-button--unelevated:not(:disabled) {
background-color: #6200ee; }
@supports not (-ms-ime-align: auto) {
.mdc-button--raised:not(:disabled),
.mdc-button--unelevated:not(:disabled) {
/* @alternate */
background-color: var(--mdc-theme-primary, #6200ee); } }
.mdc-button--raised:not(:disabled),
.mdc-button--unelevated:not(:disabled) {
color: #fff;
/* @alternate */
color: var(--mdc-theme-on-primary, #fff); }
.mdc-button--raised {
box-shadow: 0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12);
-webkit-transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);
transition: box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1); }
.mdc-button--raised:hover, .mdc-button--raised:focus {
box-shadow: 0px 2px 4px -1px rgba(0, 0, 0, 0.2), 0px 4px 5px 0px rgba(0, 0, 0, 0.14), 0px 1px 10px 0px rgba(0, 0, 0, 0.12); }
.mdc-button--raised:active {
box-shadow: 0px 5px 5px -3px rgba(0, 0, 0, 0.2), 0px 8px 10px 1px rgba(0, 0, 0, 0.14), 0px 3px 14px 2px rgba(0, 0, 0, 0.12); }
.mdc-button--raised:disabled {
box-shadow: 0px 0px 0px 0px rgba(0, 0, 0, 0.2), 0px 0px 0px 0px rgba(0, 0, 0, 0.14), 0px 0px 0px 0px rgba(0, 0, 0, 0.12); }
.mdc-button--outlined {
border-style: solid;
padding: 0 15px 0 15px;
border-width: 1px; }
.mdc-button--outlined:disabled {
border-color: rgba(0, 0, 0, 0.37); }
.mdc-button--outlined:not(:disabled) {
border-color: #6200ee;
/* @alternate */
border-color: var(--mdc-theme-primary, #6200ee); }
.mdc-button--dense {
height: 32px;
font-size: .8125rem; }
@-webkit-keyframes mdc-ripple-fg-radius-in {
from {
-webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }
to {
-webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }
@keyframes mdc-ripple-fg-radius-in {
from {
-webkit-animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
animation-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
-webkit-transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1);
transform: translate(var(--mdc-ripple-fg-translate-start, 0)) scale(1); }
to {
-webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); } }
@-webkit-keyframes mdc-ripple-fg-opacity-in {
from {
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
opacity: 0; }
to {
opacity: var(--mdc-ripple-fg-opacity, 0); } }
@keyframes mdc-ripple-fg-opacity-in {
from {
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
opacity: 0; }
to {
opacity: var(--mdc-ripple-fg-opacity, 0); } }
@-webkit-keyframes mdc-ripple-fg-opacity-out {
from {
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
opacity: var(--mdc-ripple-fg-opacity, 0); }
to {
opacity: 0; } }
@keyframes mdc-ripple-fg-opacity-out {
from {
-webkit-animation-timing-function: linear;
animation-timing-function: linear;
opacity: var(--mdc-ripple-fg-opacity, 0); }
to {
opacity: 0; } }
.mdc-ripple-surface--test-edge-var-bug {
--mdc-ripple-surface-test-edge-var: 1px solid #000;
visibility: hidden; }
.mdc-ripple-surface--test-edge-var-bug::before {
border: var(--mdc-ripple-surface-test-edge-var); }
.mdc-button {
--mdc-ripple-fg-size: 0;
--mdc-ripple-left: 0;
--mdc-ripple-top: 0;
--mdc-ripple-fg-scale: 1;
--mdc-ripple-fg-translate-end: 0;
--mdc-ripple-fg-translate-start: 0;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0); }
.mdc-button::before, .mdc-button::after {
position: absolute;
border-radius: 50%;
opacity: 0;
pointer-events: none;
content: ""; }
.mdc-button::before {
-webkit-transition: opacity 15ms linear, background-color 15ms linear;
transition: opacity 15ms linear, background-color 15ms linear;
z-index: 1; }
.mdc-button.mdc-ripple-upgraded::before {
-webkit-transform: scale(var(--mdc-ripple-fg-scale, 1));
transform: scale(var(--mdc-ripple-fg-scale, 1)); }
.mdc-button.mdc-ripple-upgraded::after {
top: 0;
/* @noflip */
left: 0;
-webkit-transform: scale(0);
transform: scale(0);
-webkit-transform-origin: center center;
transform-origin: center center; }
.mdc-button.mdc-ripple-upgraded--unbounded::after {
top: var(--mdc-ripple-top, 0);
/* @noflip */
left: var(--mdc-ripple-left, 0); }
.mdc-button.mdc-ripple-upgraded--foreground-activation::after {
-webkit-animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards;
animation: mdc-ripple-fg-radius-in 225ms forwards, mdc-ripple-fg-opacity-in 75ms forwards; }
.mdc-button.mdc-ripple-upgraded--foreground-deactivation::after {
-webkit-animation: mdc-ripple-fg-opacity-out 150ms;
animation: mdc-ripple-fg-opacity-out 150ms;
-webkit-transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1));
transform: translate(var(--mdc-ripple-fg-translate-end, 0)) scale(var(--mdc-ripple-fg-scale, 1)); }
.mdc-button::before, .mdc-button::after {
top: calc(50% - 100%);
/* @noflip */
left: calc(50% - 100%);
width: 200%;
height: 200%; }
.mdc-button.mdc-ripple-upgraded::after {
width: var(--mdc-ripple-fg-size, 100%);
height: var(--mdc-ripple-fg-size, 100%); }
.mdc-button::before, .mdc-button::after {
background-color: #6200ee; }
@supports not (-ms-ime-align: auto) {
.mdc-button::before, .mdc-button::after {
/* @alternate */
background-color: var(--mdc-theme-primary, #6200ee); } }
.mdc-button:hover::before {
opacity: 0.04; }
.mdc-button:not(.mdc-ripple-upgraded):focus::before, .mdc-button.mdc-ripple-upgraded--background-focused::before {
-webkit-transition-duration: 75ms;
transition-duration: 75ms;
opacity: 0.12; }
.mdc-button:not(.mdc-ripple-upgraded)::after {
-webkit-transition: opacity 150ms linear;
transition: opacity 150ms linear; }
.mdc-button:not(.mdc-ripple-upgraded):active::after {
-webkit-transition-duration: 75ms;
transition-duration: 75ms;
opacity: 0.12; }
.mdc-button.mdc-ripple-upgraded {
--mdc-ripple-fg-opacity: 0.12; }
.mdc-button--raised::before, .mdc-button--raised::after,
.mdc-button--unelevated::before,
.mdc-button--unelevated::after {
background-color: #fff; }
@supports not (-ms-ime-align: auto) {
.mdc-button--raised::before, .mdc-button--raised::after,
.mdc-button--unelevated::before,
.mdc-button--unelevated::after {
/* @alternate */
background-color: var(--mdc-theme-on-primary, #fff); } }
.mdc-button--raised:hover::before,
.mdc-button--unelevated:hover::before {
opacity: 0.08; }
.mdc-button--raised:not(.mdc-ripple-upgraded):focus::before, .mdc-button--raised.mdc-ripple-upgraded--background-focused::before,
.mdc-button--unelevated:not(.mdc-ripple-upgraded):focus::before,
.mdc-button--unelevated.mdc-ripple-upgraded--background-focused::before {
-webkit-transition-duration: 75ms;
transition-duration: 75ms;
opacity: 0.24; }
.mdc-button--raised:not(.mdc-ripple-upgraded)::after,
.mdc-button--unelevated:not(.mdc-ripple-upgraded)::after {
-webkit-transition: opacity 150ms linear;
transition: opacity 150ms linear; }
.mdc-button--raised:not(.mdc-ripple-upgraded):active::after,
.mdc-button--unelevated:not(.mdc-ripple-upgraded):active::after {
-webkit-transition-duration: 75ms;
transition-duration: 75ms;
opacity: 0.24; }
.mdc-button--raised.mdc-ripple-upgraded,
.mdc-button--unelevated.mdc-ripple-upgraded {
--mdc-ripple-fg-opacity: 0.24; }
.foo-button:not(:disabled) {
color: teal; }
.foo-button::before, .foo-button::after {
background-color: teal; }
.foo-button:hover::before {
opacity: 0.04; }
.foo-button:not(.mdc-ripple-upgraded):focus::before, .foo-button.mdc-ripple-upgraded--background-focused::before {
-webkit-transition-duration: 75ms;
transition-duration: 75ms;
opacity: 0.12; }
.foo-button:not(.mdc-ripple-upgraded)::after {
-webkit-transition: opacity 150ms linear;
transition: opacity 150ms linear; }
.foo-button:not(.mdc-ripple-upgraded):active::after {
-webkit-transition-duration: 75ms;
transition-duration: 75ms;
opacity: 0.12; }
.foo-button.mdc-ripple-upgraded {
--mdc-ripple-fg-opacity: 0.12; }

1505
dist/bundle.js vendored

File diff suppressed because one or more lines are too long

@ -7,19 +7,42 @@
<body>
<section class="main-container">
<div class="header-top"><!--index cover image-->
<div class="img-container">
<figure style="height: 657px;"></figure>
</div>
<div class="video-container"></div>
<div class="img-container">
<figure style="height: 100px;"></figure>
</div>
<div class="video-container"></div>
</div>
<div class="page-main"><!--page main content (async container)-->
<header class="site-header"></header> <!--nav mune-->
<div class="site-content">
233333<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>233<br><br><br>233
<button class="foo-button mdc-button">
Button
</button>
<p>
(CNN)Las Vegas is home to high rollers and risk takers -- but when Formula One rode into America's playground in the early Eighties, the stakes got even higher.
</p>
<p>
For two strange seasons, in 1981 and 1982, the world championship was decided by the Caesars Palace Grand Prix.
</p>
<p>
It sounded opulent and grand and, for once, the roulette tables weren't the only fortune-makers -- or fortune-breakers -- spinning round and round the famous hotel and casino.
</p>
<p>
"It was great to be in Vegas," America's 1978 F1 world champion Mario Andretti tells CNN. "Because of what Vegas has to offer as far as extravagance outside the race.
</p>
<p>
"It became a nice event per se because of all the amenities that the city has to offer."
</p>
<p>
Hot, hedonistic and high-flying, there was plenty to entertain the traveling F1 community as they arrived in Vegas after a long and fractious season on and off the track.
</p>
<p>
The teams were booked into Caesars Palace Hotel where they could lounge by the pool or gaze into the mirrored ceilings above the beds.
</p>
</div>
</div>
</section>
<script type="text/javascript" src="./dist/script_bundle.js"></script>
<script src="./dist/bundle.js" async></script>
</body>
</html>

1270
package-lock.json generated

File diff suppressed because it is too large Load Diff

@ -4,6 +4,8 @@
"description": "",
"main": "index.js",
"dependencies": {
"@material/button": "^3.2.0",
"@material/ripple": "^3.2.0",
"css-loader": "^3.2.0",
"extract-loader": "^3.1.0",
"file-loader": "^4.2.0",
@ -16,12 +18,19 @@
"webpack-dev-server": "^3.9.0"
},
"devDependencies": {
"@babel/core": "^7.6.4",
"@babel/preset-env": "^7.6.3",
"autoprefixer": "^9.7.0",
"babel-loader": "^8.0.6",
"postcss-loader": "^3.0.0",
"ts-loader": "^6.2.1",
"typescript": "^3.6.4"
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1",
"start": "webpack-dev-server"
"start": "webpack-dev-server",
"build": "rm dist/* && webpack",
"clean": "rm dist/*"
},
"author": "mashirozx",
"license": "MIT"

@ -0,0 +1,9 @@
@import "./scheme.scss";
@import "./size.scss";
@import "@material/button/mdc-button";
.foo-button {
@include mdc-button-ink-color(teal);
@include mdc-states(teal);
}

@ -0,0 +1,5 @@
$orange: #fe9600;
$white: #ffffff;
$gray: #cfcfcf;
$dark: #4f4f4f;
$black: #000000;

@ -0,0 +1,2 @@
// Font size
$base: 1em;

@ -0,0 +1,2 @@
import {MDCRipple} from '@material/ripple/index';
const ripple = new MDCRipple(document.querySelector('.foo-button'));

@ -3,6 +3,7 @@
"outDir": "./dist/",
"sourceMap": true,
"noImplicitAny": true,
"alwaysStrict": true,
"module": "es6",
"target": "es5",
"jsx": "react",

@ -1,17 +1,20 @@
const path = require('path');
const autoprefixer = require('autoprefixer');
module.exports = [{
mode: "development", // "production" | "development" | "none"
entry: {
style_bundle: './src/scss/index.scss',
script_bundle: './src/ts/index.ts'
//style_bundle: './src/scss/index.scss',
//script_bundle: './src/ts/index.ts'
entry: ['./src/scss/index.scss', './src/ts/index.ts']
},
devtool: 'inline-source-map',
output: {
//path: path.resolve(__dirname, "dist"),
//what's the difference?
publicPath : 'dist',
filename: '[name].js',
//publicPath : 'assets',
//filename: '[name].js',
filename: 'bundle.js',
},
module: {
rules: [
@ -21,18 +24,40 @@ module.exports = [{
{
loader: 'file-loader',
options: {
outputPath: 'dist',
//path inside dist folder
//outputPath: 'assets',
name: 'bundle.css',
},
},
{ loader: 'extract-loader' },
{ loader: 'css-loader' },
{ loader: 'sass-loader' },
{
loader: 'postcss-loader',
options: {
plugins: () => [autoprefixer()]
}
},
{
loader: 'sass-loader',
options: {
sassOptions: {
includePaths: ['./node_modules']
}
}
},
]
},
{
test: /\.tsx?$/,
use: 'ts-loader',
use: [
{ loader: 'ts-loader' },
{
loader: 'babel-loader',
query: {
presets: ['@babel/preset-env'],
},
},
],
exclude: /node_modules/
}
]

Loading…
Cancel
Save