@egjs/react-flicking 4.15.0 → 4.16.0-beta.1

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.
Files changed (84) hide show
  1. package/dev/archive/App.css +32 -0
  2. package/dev/archive/App.tsx +52 -0
  3. package/dev/archive/DebugPage.css +21 -0
  4. package/dev/archive/DebugPage.tsx +93 -0
  5. package/dev/archive/Header.tsx +52 -0
  6. package/dev/archive/StatePage.css +21 -0
  7. package/dev/archive/StatePage.tsx +107 -0
  8. package/dev/archive/css/align.css +79 -0
  9. package/dev/archive/css/bound.css +88 -0
  10. package/dev/archive/css/common.css +76 -0
  11. package/dev/archive/css/cross.css +21 -0
  12. package/dev/archive/css/features.css +49 -0
  13. package/dev/archive/css/gap.css +13 -0
  14. package/dev/archive/css/highlight.css +96 -0
  15. package/dev/archive/css/infinite.css +35 -0
  16. package/dev/archive/css/parallax.css +3 -0
  17. package/dev/archive/css/plugins.css +46 -0
  18. package/dev/archive/css/progress.css +16 -0
  19. package/dev/archive/css/variable-size.css +15 -0
  20. package/dev/archive/features/Align.tsx +149 -0
  21. package/dev/archive/features/Bound.tsx +83 -0
  22. package/dev/archive/features/CrossFlicking.tsx +74 -0
  23. package/dev/archive/features/FreeScroll.tsx +66 -0
  24. package/dev/archive/features/InfiniteFlicking.tsx +192 -0
  25. package/dev/archive/features/PlaceHolderItem.tsx +36 -0
  26. package/dev/archive/features/Progress.tsx +241 -0
  27. package/dev/archive/features/PropChange.tsx +171 -0
  28. package/dev/archive/features/Snap.tsx +95 -0
  29. package/dev/archive/features/VariableSize.tsx +42 -0
  30. package/dev/archive/features/Virtual.tsx +45 -0
  31. package/dev/archive/plugins/Arrow.tsx +25 -0
  32. package/dev/archive/plugins/AutoPlay.tsx +70 -0
  33. package/dev/archive/plugins/Fade.tsx +69 -0
  34. package/dev/archive/plugins/Parallax.tsx +70 -0
  35. package/dev/archive/utils.ts +3 -0
  36. package/dev/basic-sample/App.tsx +36 -0
  37. package/dev/basic-sample/index.html +12 -0
  38. package/dev/basic-sample/main.tsx +10 -0
  39. package/dev/index.html +18 -0
  40. package/dev/plugin-check/App.tsx +341 -0
  41. package/dev/plugin-check/index.html +15 -0
  42. package/dev/plugin-check/main.tsx +6 -0
  43. package/dev/scratch/App.tsx +34 -0
  44. package/dev/scratch/index.html +15 -0
  45. package/dev/scratch/main.tsx +13 -0
  46. package/dev/tsconfig.json +12 -0
  47. package/dev/vite-env.d.ts +3 -0
  48. package/{declaration → dist}/CrossFlicking.d.ts +3 -5
  49. package/{declaration → dist}/CrossGroup.d.ts +1 -1
  50. package/{declaration → dist}/Flicking.d.ts +8 -8
  51. package/{declaration → dist}/NonStrictPanel.d.ts +1 -1
  52. package/{declaration → dist}/ReactRenderer.d.ts +1 -1
  53. package/{declaration → dist}/StrictPanel.d.ts +1 -1
  54. package/{declaration → dist}/ViewportSlot.d.ts +1 -1
  55. package/dist/flicking.cjs.js +1514 -579
  56. package/dist/flicking.cjs.js.map +1 -1
  57. package/dist/flicking.esm.js +1573 -651
  58. package/dist/flicking.esm.js.map +1 -1
  59. package/dist/flicking.js +1634 -0
  60. package/dist/flicking.js.map +1 -0
  61. package/{declaration → dist}/index.d.ts +3 -3
  62. package/{declaration → dist}/types.d.ts +1 -2
  63. package/package.json +18 -33
  64. package/src/react-flicking/CrossFlicking.tsx +28 -37
  65. package/src/react-flicking/CrossGroup.tsx +6 -8
  66. package/src/react-flicking/Flicking.tsx +81 -69
  67. package/src/react-flicking/NonStrictPanel.tsx +15 -7
  68. package/src/react-flicking/ReactElementProvider.ts +6 -4
  69. package/src/react-flicking/ReactRenderer.ts +1 -2
  70. package/src/react-flicking/StrictPanel.tsx +10 -6
  71. package/src/react-flicking/consts.ts +14 -14
  72. package/src/react-flicking/index.ts +4 -7
  73. package/src/react-flicking/index.umd.ts +1 -1
  74. package/src/react-flicking/reactive.ts +3 -3
  75. package/src/react-flicking/types.ts +17 -17
  76. package/tsconfig.json +2 -9
  77. package/vite.config.ts +38 -0
  78. package/vite.dev.config.ts +58 -0
  79. package/dist/flicking.umd.js +0 -699
  80. package/dist/flicking.umd.js.map +0 -1
  81. /package/{declaration → dist}/ReactElementProvider.d.ts +0 -0
  82. /package/{declaration → dist}/consts.d.ts +0 -0
  83. /package/{declaration → dist}/index.umd.d.ts +0 -0
  84. /package/{declaration → dist}/reactive.d.ts +0 -0
@@ -0,0 +1,32 @@
1
+ .flicking-viewport {
2
+ width: 500px;
3
+ height: 200px;
4
+ margin: 0px auto;
5
+ border-radius: 5px;
6
+ }
7
+ .panel {
8
+ position: relative;
9
+ width: 400px;
10
+ height: 200px;
11
+ background: #f55;
12
+ border-radius: 5px;
13
+ overflow: hidden;
14
+ }
15
+ .panel:after {
16
+ content: "";
17
+ position: absolute;
18
+ width: 100%;
19
+ height: 100%;
20
+ top: 0;
21
+ left: 0;
22
+ background: rgba(0, 0, 0, 0.1);
23
+ }
24
+ .panel img {
25
+ top: -100%;
26
+ bottom: -100%;
27
+ min-width: 100%;
28
+ margin: auto;
29
+ position: absolute;
30
+ left: 50%;
31
+ transform: translate(-50%);
32
+ }
@@ -0,0 +1,52 @@
1
+ import { Component } from "react";
2
+ import { Route, BrowserRouter as Router, Routes } from "react-router-dom";
3
+ import "./css/common.css";
4
+ import "./css/features.css";
5
+ import "./css/highlight.css";
6
+ import "@dev/flicking-css";
7
+ import "@dev/plugins-css";
8
+ import hljs from "highlight.js";
9
+ import Align from "./features/Align";
10
+ import Bound from "./features/Bound";
11
+ import CrossFlicking from "./features/CrossFlicking";
12
+ import FreeScroll from "./features/FreeScroll";
13
+ import InfiniteFlicking from "./features/InfiniteFlicking";
14
+ import Progress from "./features/Progress";
15
+ import PropChange from "./features/PropChange";
16
+ import Snap from "./features/Snap";
17
+ import VariableSize from "./features/VariableSize";
18
+ import Virtual from "./features/Virtual";
19
+ import Header from "./Header";
20
+ import Arrow from "./plugins/Arrow";
21
+ import AutoPlay from "./plugins/AutoPlay";
22
+ import Fade from "./plugins/Fade";
23
+ import Parallax from "./plugins/Parallax";
24
+
25
+ export default class App extends Component<{}> {
26
+ public render() {
27
+ return (
28
+ <Router>
29
+ <Header />
30
+ <Routes>
31
+ <Route path="/infinite" element={<InfiniteFlicking />} />
32
+ <Route path="/free-scroll" element={<FreeScroll />} />
33
+ <Route path="/variable-size" element={<VariableSize />} />
34
+ <Route path="/align" element={<Align />} />
35
+ <Route path="/snap" element={<Snap />} />
36
+ <Route path="/progress" element={<Progress />} />
37
+ <Route path="/bound" element={<Bound />} />
38
+ <Route path="/virtual" element={<Virtual />} />
39
+ <Route path="/parallax" element={<Parallax />} />
40
+ <Route path="/fade" element={<Fade />} />
41
+ <Route path="/autoplay" element={<AutoPlay />} />
42
+ <Route path="/arrow" element={<Arrow />} />
43
+ <Route path="/prop" element={<PropChange />} />
44
+ <Route path="/cross" element={<CrossFlicking />} />
45
+ </Routes>
46
+ </Router>
47
+ );
48
+ }
49
+ public componentDidMount() {
50
+ hljs.initHighlighting();
51
+ }
52
+ }
@@ -0,0 +1,21 @@
1
+ .flicking-viewport {
2
+ background-color: aliceblue;
3
+ }
4
+
5
+ .item-list {
6
+ width: 100%;
7
+ }
8
+
9
+ .item {
10
+ height: 100px;
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ margin-bottom: 5px;
15
+ background-color: skyblue;
16
+ }
17
+
18
+ .dummy-container {
19
+ background-color: green;
20
+ height: 500px;
21
+ }
@@ -0,0 +1,93 @@
1
+ import Flicking from "@dev/react-flicking";
2
+
3
+ import "@dev/flicking-css";
4
+ import "./DebugPage.css";
5
+ import { useRef } from "react";
6
+
7
+ // 이후에 AI에게 데모 페이지 구성의 퓨샷 예시로 제공하기.
8
+ // (이슈 환경 페이지의 이미지도 같이 제공하기)
9
+ // (위 이슈 페이지의 데모 환경 페이지를 극도로 단순화시킨 페이지라고 알려주고 데모 환경은 이런식으로 단순화시켜 표현하라고 지침)
10
+ // - 특징
11
+ // - 바닐라 플리킹 css는 직접 임포트
12
+ // - 리액트 플리킹 컴포넌트는 로컬에서 임포트
13
+ // - 최대한 단순화한 페이지 레이아웃
14
+ const DebugPage: React.FC = () => {
15
+ const flickingRef = useRef<Flicking>(null);
16
+ const onClickPrev = () => {
17
+ flickingRef.current?.prev();
18
+ };
19
+ const onClickNext = () => {
20
+ flickingRef.current?.next();
21
+ };
22
+
23
+ return (
24
+ <div className="debug-page">
25
+ <h2>Basic Flicking Demo</h2>
26
+ <Flicking
27
+ ref={flickingRef}
28
+ className="flicking"
29
+ circular={false}
30
+ moveType="strict"
31
+ renderOnlyVisible={true}
32
+ autoResize={true}
33
+ bounce={[10, 10]}
34
+ duration={100}
35
+ optimizeSizeUpdate={true}
36
+ >
37
+ <div className="item-list">
38
+ <div className="item">1</div>
39
+ <div className="item">2</div>
40
+ <div className="item">3</div>
41
+ <div className="item">4</div>
42
+ <div className="item">5</div>
43
+ </div>
44
+ <div className="item-list">
45
+ <div className="item">6</div>
46
+ <div className="item">7</div>
47
+ <div className="item">8</div>
48
+ <div className="item">9</div>
49
+ <div className="item">10</div>
50
+ </div>
51
+ <div className="item-list">
52
+ <div className="item">11</div>
53
+ <div className="item">12</div>
54
+ <div className="item">13</div>
55
+ <div className="item">14</div>
56
+ <div className="item">15</div>
57
+ </div>
58
+ <div className="item-list">
59
+ <div className="item">16</div>
60
+ <div className="item">17</div>
61
+ <div className="item">18</div>
62
+ <div className="item">19</div>
63
+ <div className="item">20</div>
64
+ </div>
65
+ <div className="item-list">
66
+ <div className="item">21</div>
67
+ <div className="item">22</div>
68
+ <div className="item">23</div>
69
+ <div className="item">24</div>
70
+ <div className="item">25</div>
71
+ </div>
72
+ <div className="item-list">
73
+ <div className="item">26</div>
74
+ <div className="item">27</div>
75
+ <div className="item">28</div>
76
+ <div className="item">29</div>
77
+ <div className="item">30</div>
78
+ </div>
79
+ <div className="item-list">
80
+ <div className="item">31</div>
81
+ <div className="item">32</div>
82
+ </div>
83
+ </Flicking>
84
+ <div style={{ display: "flex", justifyContent: "center" }}>
85
+ <button onClick={onClickPrev}>Prev</button>
86
+ <button onClick={onClickNext}>Next</button>
87
+ </div>
88
+ <div className="dummy-container"></div>
89
+ </div>
90
+ );
91
+ };
92
+
93
+ export default DebugPage;
@@ -0,0 +1,52 @@
1
+ import * as React from "react";
2
+ import { Link } from "react-router-dom";
3
+ export default class Header extends React.Component {
4
+ public render() {
5
+ return (
6
+ <ul className="header">
7
+ <li>
8
+ <Link to="/infinite">Infinite Flicking</Link>
9
+ </li>
10
+ <li>
11
+ <Link to="/free-scroll">Free Scroll</Link>
12
+ </li>
13
+ <li>
14
+ <Link to="/variable-size">Variable Size</Link>
15
+ </li>
16
+ <li>
17
+ <Link to="/align">Align</Link>
18
+ </li>
19
+ <li>
20
+ <Link to="/snap">Snap</Link>
21
+ </li>
22
+ <li>
23
+ <Link to="/progress">Progress</Link>
24
+ </li>
25
+ <li>
26
+ <Link to="/bound">Bound</Link>
27
+ </li>
28
+ <li>
29
+ <Link to="/virtual">Virtual</Link>
30
+ </li>
31
+ <li>
32
+ <Link to="/parallax">Parallax</Link>
33
+ </li>
34
+ <li>
35
+ <Link to="/fade">Fade</Link>
36
+ </li>
37
+ <li>
38
+ <Link to="/autoplay">AutoPlay</Link>
39
+ </li>
40
+ <li>
41
+ <Link to="/arrow">Arrow</Link>
42
+ </li>
43
+ <li>
44
+ <Link to="/prop">Prop Change</Link>
45
+ </li>
46
+ <li>
47
+ <Link to="/cross">Cross Flicking</Link>
48
+ </li>
49
+ </ul>
50
+ );
51
+ }
52
+ }
@@ -0,0 +1,21 @@
1
+ .flicking-viewport {
2
+ background-color: aliceblue;
3
+ }
4
+
5
+ .item-list {
6
+ width: 100%;
7
+ }
8
+
9
+ .item {
10
+ height: 100px;
11
+ display: flex;
12
+ align-items: center;
13
+ justify-content: center;
14
+ margin-bottom: 5px;
15
+ background-color: skyblue;
16
+ }
17
+
18
+ .dummy-container {
19
+ background-color: green;
20
+ height: 500px;
21
+ }
@@ -0,0 +1,107 @@
1
+ import Flicking, { useFlickingReactiveAPI } from "@dev/react-flicking";
2
+ import Button from "@mui/material/Button";
3
+ import Pagination from "@mui/material/Pagination";
4
+ import Stack from "@mui/material/Stack";
5
+ import { useRef } from "react";
6
+
7
+ import "@dev/flicking-css";
8
+ import "./StatePage.css";
9
+ import LinearProgress from "@mui/material/LinearProgress";
10
+
11
+ const DebugPage: React.FC = () => {
12
+ const flickingRef = useRef<Flicking>(null);
13
+
14
+ const { isReachStart, isReachEnd, progress, currentPanelIndex, totalPanelCount, moveTo } =
15
+ useFlickingReactiveAPI(flickingRef);
16
+
17
+ const onClickPrev = () => {
18
+ flickingRef.current?.prev();
19
+ };
20
+ const onClickNext = () => {
21
+ flickingRef.current?.next();
22
+ };
23
+
24
+ return (
25
+ <div className="debug-page">
26
+ <h2>Basic Flicking Demo</h2>
27
+ <Flicking
28
+ ref={flickingRef}
29
+ className="flicking"
30
+ moveType="strict"
31
+ renderOnlyVisible={true}
32
+ autoResize={true}
33
+ bounce={[10, 10]}
34
+ duration={100}
35
+ optimizeSizeUpdate={true}
36
+ >
37
+ <div className="item-list">
38
+ <div className="item">1</div>
39
+ <div className="item">2</div>
40
+ <div className="item">3</div>
41
+ <div className="item">4</div>
42
+ <div className="item">5</div>
43
+ </div>
44
+ <div className="item-list">
45
+ <div className="item">6</div>
46
+ <div className="item">7</div>
47
+ <div className="item">8</div>
48
+ <div className="item">9</div>
49
+ <div className="item">10</div>
50
+ </div>
51
+ <div className="item-list">
52
+ <div className="item">11</div>
53
+ <div className="item">12</div>
54
+ <div className="item">13</div>
55
+ <div className="item">14</div>
56
+ <div className="item">15</div>
57
+ </div>
58
+ <div className="item-list">
59
+ <div className="item">16</div>
60
+ <div className="item">17</div>
61
+ <div className="item">18</div>
62
+ <div className="item">19</div>
63
+ <div className="item">20</div>
64
+ </div>
65
+ <div className="item-list">
66
+ <div className="item">21</div>
67
+ <div className="item">22</div>
68
+ <div className="item">23</div>
69
+ <div className="item">24</div>
70
+ <div className="item">25</div>
71
+ </div>
72
+ <div className="item-list">
73
+ <div className="item">26</div>
74
+ <div className="item">27</div>
75
+ <div className="item">28</div>
76
+ <div className="item">29</div>
77
+ <div className="item">30</div>
78
+ </div>
79
+ <div className="item-list">
80
+ <div className="item">31</div>
81
+ <div className="item">32</div>
82
+ </div>
83
+ </Flicking>
84
+ <div style={{ display: "flex", justifyContent: "center" }}>
85
+ <Button variant="contained" onClick={onClickPrev} disabled={isReachStart}>
86
+ Prev
87
+ </Button>
88
+ <Button variant="contained" onClick={onClickNext} disabled={isReachEnd}>
89
+ Next
90
+ </Button>
91
+ </div>
92
+ <Stack>
93
+ <Pagination
94
+ count={totalPanelCount}
95
+ page={currentPanelIndex + 1}
96
+ onChange={(e, v) => {
97
+ moveTo(v - 1);
98
+ }}
99
+ />
100
+ <LinearProgress variant="determinate" value={progress} />
101
+ {/* <LinearProgress variant="determinate" value={scrollProgress}/> */}
102
+ </Stack>
103
+ </div>
104
+ );
105
+ };
106
+
107
+ export default DebugPage;
@@ -0,0 +1,79 @@
1
+ #align .hanger {
2
+ position: relative;
3
+ max-width: 500px;
4
+ width: 100%;
5
+ margin: 10px auto;
6
+ height: 20px;
7
+ z-index: 2002;
8
+ top: 10px;
9
+ }
10
+ #align .hanger:after {
11
+ position: absolute;
12
+ content: "hanger: 50%";
13
+ font-weight: bold;
14
+ left: 50%;
15
+ transform: translate(-50%);
16
+ }
17
+ #align .hanger:before {
18
+ position: absolute;
19
+ content: "";
20
+ font-weight: bold;
21
+ top: 100%;
22
+ left: 50%;
23
+ background: #333;
24
+ width: 2px;
25
+ height: 25px;
26
+ }
27
+
28
+ #align .anchor {
29
+ position: absolute;
30
+ font-weight: bold;
31
+ bottom: 5px;
32
+ left: 50%;
33
+ background: #333;
34
+ width: 2px;
35
+ height: 25px;
36
+ z-index: 10;
37
+ }
38
+ #align .anchor:after {
39
+ position: absolute;
40
+ content: "anchor: 50%";
41
+ font-weight: bold;
42
+ left: -40px;
43
+ white-space: nowrap;
44
+ bottom: 100%;
45
+ }
46
+
47
+ #align .hanger1:after {
48
+ content: "hanger: 0";
49
+ left: 0;
50
+ }
51
+ #align .hanger1:before {
52
+ left: 0;
53
+ }
54
+ #align .flicking1 .anchor {
55
+ left: 0;
56
+ }
57
+ #align .flicking1 .anchor:after {
58
+ content: "anchor: 0";
59
+ left: 0;
60
+ }
61
+
62
+ #align .hanger2:after {
63
+ content: "hanger: 30%";
64
+ left: 30%;
65
+ }
66
+ #align .hanger2:before {
67
+ left: 30%;
68
+ }
69
+ #align .flicking2 .anchor {
70
+ left: 50px;
71
+ }
72
+ #align .flicking2 .anchor:after {
73
+ content: "anchor: 50px";
74
+ left: -20px;
75
+ }
76
+ #align .extra li:first-child {
77
+ margin-left: -20px;
78
+ list-style: none;
79
+ }
@@ -0,0 +1,88 @@
1
+ #bound .hanger {
2
+ position: relative;
3
+ max-width: 500px;
4
+ width: 100%;
5
+ margin: 10px auto;
6
+ height: 20px;
7
+ z-index: 2002;
8
+ top: 10px;
9
+ }
10
+ #bound .hanger {
11
+ position: relative;
12
+ max-width: 500px;
13
+ width: 100%;
14
+ margin: 10px auto;
15
+ height: 20px;
16
+ z-index: 2002;
17
+ top: 10px;
18
+ }
19
+ #bound .hanger:after {
20
+ position: absolute;
21
+ content: "hanger: 50%";
22
+ font-weight: bold;
23
+ left: 50%;
24
+ transform: translate(-50%);
25
+ }
26
+ #bound .hanger:before {
27
+ position: absolute;
28
+ content: "";
29
+ font-weight: bold;
30
+ top: 100%;
31
+ left: 50%;
32
+ background: #333;
33
+ width: 2px;
34
+ height: 25px;
35
+ }
36
+ #bound .anchor {
37
+ position: absolute;
38
+ font-weight: bold;
39
+ bottom: 5px;
40
+ left: 50%;
41
+ background: #333;
42
+ width: 2px;
43
+ height: 25px;
44
+ z-index: 10;
45
+ }
46
+ #bound .anchor:after {
47
+ position: absolute;
48
+ content: "anchor: 50%";
49
+ font-weight: bold;
50
+ left: -40px;
51
+ white-space: nowrap;
52
+ bottom: 100%;
53
+ }
54
+ #bound .hanger:after {
55
+ position: absolute;
56
+ content: "hanger: 50%";
57
+ font-weight: bold;
58
+ left: 50%;
59
+ transform: translate(-50%);
60
+ }
61
+ #bound .hanger:before {
62
+ position: absolute;
63
+ content: "";
64
+ font-weight: bold;
65
+ top: 100%;
66
+ left: 50%;
67
+ background: #333;
68
+ width: 2px;
69
+ height: 25px;
70
+ }
71
+ #bound .anchor {
72
+ position: absolute;
73
+ font-weight: bold;
74
+ bottom: 5px;
75
+ left: 50%;
76
+ background: #333;
77
+ width: 2px;
78
+ height: 25px;
79
+ z-index: 10;
80
+ }
81
+ #bound .anchor:after {
82
+ position: absolute;
83
+ content: "anchor: 50%";
84
+ font-weight: bold;
85
+ left: -40px;
86
+ white-space: nowrap;
87
+ bottom: 100%;
88
+ }
@@ -0,0 +1,76 @@
1
+ @import url("https://fonts.googleapis.com/css?family=Nanum+Gothic&subset=korean");
2
+ body {
3
+ margin-top: 10px;
4
+ }
5
+ .header {
6
+ position: fixed;
7
+ top: 0;
8
+ left: 0;
9
+ right: 0;
10
+ background: rgba(255, 255, 255, 0.5);
11
+ height: 40px;
12
+ z-index: 2010;
13
+ margin: 0;
14
+ padding: 10px;
15
+ list-style: none;
16
+ overflow-x: auto;
17
+ white-space: nowrap;
18
+ }
19
+ .header li {
20
+ margin: 0px 10px;
21
+ padding: 0;
22
+ position: relative;
23
+ display: inline-block;
24
+ line-height: 40px;
25
+ vertical-align: top;
26
+ }
27
+ .header li a {
28
+ color: #333;
29
+ font-weight: bold;
30
+ padding: 0px 10px;
31
+ line-height: 40px;
32
+ }
33
+ body,
34
+ em,
35
+ i {
36
+ font-family: "Helvetica Neue", sans-serif;
37
+ font-weight: 300;
38
+ font-style: normal;
39
+ }
40
+ .hljs {
41
+ margin: 30px auto;
42
+ max-width: 800px;
43
+ padding: 10px;
44
+ border-radius: 5px;
45
+ }
46
+ .container {
47
+ max-width: 800px;
48
+ width: 100%;
49
+ margin: 30px auto;
50
+ padding-top: 40px;
51
+ }
52
+ h1 a {
53
+ position: relative;
54
+ color: #333;
55
+ }
56
+ pre {
57
+ max-width: 800px;
58
+ margin: 30px auto;
59
+ }
60
+ ul.extra {
61
+ max-width: 800px;
62
+ margin: 10px auto;
63
+ font-size: 16px;
64
+ padding: 10px 10px 10px 40px;
65
+ border-radius: 10px;
66
+ background: #f5f5f5;
67
+ box-sizing: border-box;
68
+ list-style: initial;
69
+ }
70
+ ul.extra li {
71
+ font-size: 16px;
72
+ margin: 10px 0px;
73
+ list-style: initial;
74
+ height: auto;
75
+ overflow: visible;
76
+ }
@@ -0,0 +1,21 @@
1
+ #cross .flicking-viewport {
2
+ width: 400px;
3
+ height: 500px;
4
+ }
5
+
6
+ #cross .panel {
7
+ width: 400px;
8
+ margin-top: 0px;
9
+ font-size: 60px;
10
+ display: flex;
11
+ flex-direction: column;
12
+ align-items: center;
13
+ justify-content: center;
14
+ height: 500px;
15
+ color: white;
16
+ }
17
+
18
+ #cross .panel img {
19
+ width: 100%;
20
+ height: 100%;
21
+ }
@@ -0,0 +1,49 @@
1
+ .flicking-viewport {
2
+ width: 500px;
3
+ height: 130px;
4
+ margin: 0px auto;
5
+ background: #eee;
6
+ background: rgba(55, 55, 55 0.1);
7
+ border-radius: 5px;
8
+ }
9
+ .panel {
10
+ position: relative;
11
+ display: block;
12
+ border-radius: 5px;
13
+ width: 200px;
14
+ margin-top: 5px;
15
+ background: #f55;
16
+ height: 120px;
17
+ text-align: center;
18
+ line-height: 120px;
19
+ }
20
+ .flicking-viewport .panel0 {
21
+ background: #f47071;
22
+ }
23
+ .flicking-viewport .panel1 {
24
+ background: #f69462;
25
+ }
26
+ .flicking-viewport .panel2 {
27
+ background: #ede484;
28
+ }
29
+ .flicking-viewport .panel3 {
30
+ background: #90f290;
31
+ }
32
+ .flicking-viewport .panel4 {
33
+ background: #78caff;
34
+ }
35
+ .flicking-viewport .infinite0 {
36
+ background: #f47071;
37
+ }
38
+ .flicking-viewport .infinite1 {
39
+ background: #f69462;
40
+ }
41
+ .flicking-viewport .infinite2 {
42
+ background: #ede484;
43
+ }
44
+ .flicking-viewport .infinite3 {
45
+ background: #90f290;
46
+ }
47
+ .flicking-viewport .infinite4 {
48
+ background: #78caff;
49
+ }