create-cloudflare 2.67.1 → 2.67.2

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.
package/dist/cli.js CHANGED
@@ -94657,7 +94657,7 @@ var Yargs = YargsFactory(esm_default2);
94657
94657
  var yargs_default = Yargs;
94658
94658
 
94659
94659
  // package.json
94660
- var version = "2.67.1";
94660
+ var version = "2.67.2";
94661
94661
 
94662
94662
  // src/metrics.ts
94663
94663
  var import_node_async_hooks = require("node:async_hooks");
@@ -98645,23 +98645,23 @@ async function getVariant2(ctx) {
98645
98645
  lang: "ts",
98646
98646
  label: "TypeScript"
98647
98647
  },
98648
- {
98649
- value: "react-swc-ts",
98650
- lang: "ts",
98651
- label: "TypeScript + SWC"
98652
- },
98653
98648
  {
98654
98649
  value: "react",
98655
98650
  lang: "js",
98656
98651
  label: "JavaScript"
98657
- },
98658
- {
98659
- value: "react-swc",
98660
- lang: "js",
98661
- label: "JavaScript + SWC"
98662
98652
  }
98663
98653
  ];
98664
98654
  if (ctx.args.variant) {
98655
+ const deprecatedVariantReplacements = {
98656
+ "react-swc-ts": "react-ts",
98657
+ "react-swc": "react"
98658
+ };
98659
+ const replacement = deprecatedVariantReplacements[ctx.args.variant];
98660
+ if (replacement) {
98661
+ throw new Error(
98662
+ `The React variant "${ctx.args.variant}" is no longer available. Use "${replacement}" instead.`
98663
+ );
98664
+ }
98665
98665
  const selected2 = variantsOptions2.find(
98666
98666
  (variant) => variant.value === ctx.args.variant
98667
98667
  );
@@ -99357,7 +99357,7 @@ If the application uses Durable Objects or Workflows, refer to the relevant best
99357
99357
  var import_node_assert6 = __toESM(require("node:assert"));
99358
99358
 
99359
99359
  // ../wrangler/package.json
99360
- var version2 = "4.84.0";
99360
+ var version2 = "4.84.1";
99361
99361
 
99362
99362
  // src/git.ts
99363
99363
  var offerGit = async (ctx) => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "create-cloudflare",
3
- "version": "2.67.1",
3
+ "version": "2.67.2",
4
4
  "description": "A CLI for creating and deploying new applications to Cloudflare.",
5
5
  "keywords": [
6
6
  "cloudflare",
@@ -31,7 +31,7 @@
31
31
  "@babel/parser": "^7.21.3",
32
32
  "@babel/types": "^7.21.4",
33
33
  "@clack/prompts": "^0.6.3",
34
- "@cloudflare/workers-types": "^4.20260420.1",
34
+ "@cloudflare/workers-types": "^4.20260421.1",
35
35
  "@types/command-exists": "^1.2.0",
36
36
  "@types/cross-spawn": "^6.0.2",
37
37
  "@types/deepmerge": "^2.2.0",
@@ -75,10 +75,10 @@
75
75
  "@cloudflare/cli": "1.4.0",
76
76
  "@cloudflare/codemod": "1.1.0",
77
77
  "@cloudflare/mock-npm-registry": "0.0.0",
78
- "@cloudflare/vite-plugin": "1.33.0",
78
+ "@cloudflare/vite-plugin": "1.33.1",
79
79
  "@cloudflare/workers-tsconfig": "0.0.0",
80
80
  "@cloudflare/workers-utils": "0.17.0",
81
- "wrangler": "4.84.0"
81
+ "wrangler": "4.84.1"
82
82
  },
83
83
  "engines": {
84
84
  "node": ">=20.0.0"
@@ -122,25 +122,27 @@ async function getVariant(ctx: C3Context) {
122
122
  lang: "ts",
123
123
  label: "TypeScript",
124
124
  },
125
- {
126
- value: "react-swc-ts",
127
- lang: "ts",
128
- label: "TypeScript + SWC",
129
- },
130
125
  {
131
126
  value: "react",
132
127
  lang: "js",
133
128
  label: "JavaScript",
134
129
  },
135
- {
136
- value: "react-swc",
137
- lang: "js",
138
- label: "JavaScript + SWC",
139
- },
140
130
  ];
141
131
 
142
132
  // If variant is provided via CLI args, use it directly
143
133
  if (ctx.args.variant) {
134
+ const deprecatedVariantReplacements: Record<string, string> = {
135
+ "react-swc-ts": "react-ts",
136
+ "react-swc": "react",
137
+ };
138
+
139
+ const replacement = deprecatedVariantReplacements[ctx.args.variant];
140
+ if (replacement) {
141
+ throw new Error(
142
+ `The React variant "${ctx.args.variant}" is no longer available. Use "${replacement}" instead.`
143
+ );
144
+ }
145
+
144
146
  const selected = variantsOptions.find(
145
147
  (variant) => variant.value === ctx.args.variant
146
148
  );
@@ -1,7 +1,8 @@
1
1
  import { useState } from 'react'
2
2
  import reactLogo from './assets/react.svg'
3
3
  import viteLogo from './assets/vite.svg'
4
- import cloudflareLogo from './assets/Cloudflare_Logo.svg'
4
+ import cloudflareLogo from './assets/cloudflare.svg'
5
+ import heroImg from './assets/hero.png'
5
6
  import './App.css'
6
7
 
7
8
  function App() {
@@ -10,47 +11,136 @@ function App() {
10
11
 
11
12
  return (
12
13
  <>
13
- <div>
14
- <a href='https://vite.dev' target='_blank'>
15
- <img src={viteLogo} className='logo' alt='Vite logo' />
16
- </a>
17
- <a href='https://react.dev' target='_blank'>
18
- <img src={reactLogo} className='logo react' alt='React logo' />
19
- </a>
20
- <a href='https://workers.cloudflare.com/' target='_blank'>
21
- <img src={cloudflareLogo} className='logo cloudflare' alt='Cloudflare logo' />
22
- </a>
23
- </div>
24
- <h1>Vite + React + Cloudflare</h1>
25
- <div className='card'>
26
- <button
27
- onClick={() => setCount((count) => count + 1)}
28
- aria-label='increment'
29
- >
30
- count is {count}
31
- </button>
32
- <p>
33
- Edit <code>src/App.tsx</code> and save to test HMR
34
- </p>
35
- </div>
36
- <div className='card'>
37
- <button
38
- onClick={() => {
39
- fetch('/api/')
40
- .then((res) => res.json())
41
- .then((data) => setName(data.name))
42
- }}
43
- aria-label='get name'
44
- >
45
- Name from API is: {name}
46
- </button>
47
- <p>
48
- Edit <code>worker/index.js</code> to change the name
49
- </p>
50
- </div>
51
- <p className='read-the-docs'>
52
- Click on the Vite and React logos to learn more
53
- </p>
14
+ <section id="center">
15
+ <div className="hero">
16
+ <img src={heroImg} className="base" width="170" height="179" alt="" />
17
+ <img src={reactLogo} className="framework" alt="React logo" />
18
+ <img src={viteLogo} className="vite" alt="Vite logo" />
19
+ </div>
20
+ <div>
21
+ <h1>Get started with Cloudflare</h1>
22
+ <p>
23
+ Edit <code>src/App.jsx</code> or <code>worker/index.js</code> and save to test <code>HMR</code>
24
+ </p>
25
+ </div>
26
+ <ul style={{ display: 'flex', gap: '1rem', listStyle: 'none', padding: 0 }}>
27
+ <li>
28
+ <button
29
+ className="counter"
30
+ onClick={() => setCount((count) => count + 1)}
31
+ >
32
+ Count is {count}
33
+ </button>
34
+ </li>
35
+ <li>
36
+ <button
37
+ className="counter"
38
+ onClick={() => {
39
+ fetch('/api/')
40
+ .then((res) => res.json())
41
+ .then((data) => setName(data.name))
42
+ }}
43
+ aria-label='get name'
44
+ >
45
+ Name from API is: {name}
46
+ </button>
47
+ </li>
48
+ </ul>
49
+
50
+
51
+ </section>
52
+
53
+ <div className="ticks"></div>
54
+
55
+ <section id="next-steps">
56
+ <div id="docs">
57
+ <svg className="icon" role="presentation" aria-hidden="true">
58
+ <use href="/icons.svg#documentation-icon"></use>
59
+ </svg>
60
+ <h2>Documentation</h2>
61
+ <p>Your questions, answered</p>
62
+ <ul>
63
+ <li>
64
+ <a href="https://vite.dev/" target="_blank">
65
+ <img className="logo" src={viteLogo} alt="" />
66
+ Explore Vite
67
+ </a>
68
+ </li>
69
+ <li>
70
+ <a href="https://react.dev/" target="_blank">
71
+ <img className="button-icon" src={reactLogo} alt="" />
72
+ Learn more
73
+ </a>
74
+ </li>
75
+ <li>
76
+ <a href="https://workers.cloudflare.com/" target="_blank">
77
+ <img className="button-icon" src={cloudflareLogo} alt="" />
78
+ Workers Docs
79
+ </a>
80
+ </li>
81
+ </ul>
82
+ </div>
83
+ <div id="social">
84
+ <svg className="icon" role="presentation" aria-hidden="true">
85
+ <use href="/icons.svg#social-icon"></use>
86
+ </svg>
87
+ <h2>Connect with us</h2>
88
+ <p>Join the Vite community</p>
89
+ <ul>
90
+ <li>
91
+ <a href="https://github.com/vitejs/vite" target="_blank">
92
+ <svg
93
+ className="button-icon"
94
+ role="presentation"
95
+ aria-hidden="true"
96
+ >
97
+ <use href="/icons.svg#github-icon"></use>
98
+ </svg>
99
+ GitHub
100
+ </a>
101
+ </li>
102
+ <li>
103
+ <a href="https://chat.vite.dev/" target="_blank">
104
+ <svg
105
+ className="button-icon"
106
+ role="presentation"
107
+ aria-hidden="true"
108
+ >
109
+ <use href="/icons.svg#discord-icon"></use>
110
+ </svg>
111
+ Discord
112
+ </a>
113
+ </li>
114
+ <li>
115
+ <a href="https://x.com/vite_js" target="_blank">
116
+ <svg
117
+ className="button-icon"
118
+ role="presentation"
119
+ aria-hidden="true"
120
+ >
121
+ <use href="/icons.svg#x-icon"></use>
122
+ </svg>
123
+ X.com
124
+ </a>
125
+ </li>
126
+ <li>
127
+ <a href="https://bsky.app/profile/vite.dev" target="_blank">
128
+ <svg
129
+ className="button-icon"
130
+ role="presentation"
131
+ aria-hidden="true"
132
+ >
133
+ <use href="/icons.svg#bluesky-icon"></use>
134
+ </svg>
135
+ Bluesky
136
+ </a>
137
+ </li>
138
+ </ul>
139
+ </div>
140
+ </section>
141
+
142
+ <div className="ticks"></div>
143
+ <section id="spacer"></section>
54
144
  </>
55
145
  )
56
146
  }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="19" fill="none" viewBox="0 0 40 19"><path fill="#f6821f" d="m27.16 18.507.204-.735c.242-.873.152-1.68-.255-2.274-.374-.547-.998-.868-1.755-.906l-14.346-.19a.3.3 0 0 1-.127-.034.3.3 0 0 1-.099-.09.31.31 0 0 1-.03-.27.4.4 0 0 1 .128-.185.37.37 0 0 1 .205-.081l14.479-.192c1.717-.082 3.576-1.536 4.227-3.31l.826-2.25a.55.55 0 0 0 .022-.298C29.702 3.29 25.94 0 21.44 0c-4.146 0-7.667 2.792-8.928 6.673a4.1 4.1 0 0 0-2.978-.86c-1.99.206-3.589 1.877-3.786 3.953a4.6 4.6 0 0 0 .11 1.547C2.605 11.41 0 14.189 0 17.603q0 .459.065.911c.009.07.042.134.093.18.05.047.116.072.183.073l26.485.003h.007a.34.34 0 0 0 .205-.076.36.36 0 0 0 .122-.187"/><path fill="#fbad41" d="M31.94 8.153q-.2 0-.397.01a.2.2 0 0 0-.062.014.2.2 0 0 0-.091.061.24.24 0 0 0-.054.098l-.564 2.033c-.243.874-.152 1.68.254 2.274.375.547.998.868 1.756.906l3.058.191a.3.3 0 0 1 .123.035.28.28 0 0 1 .142.22.3.3 0 0 1-.015.14.4.4 0 0 1-.128.185.37.37 0 0 1-.205.08l-3.177.192c-1.725.083-3.585 1.536-4.235 3.31l-.23.626a.18.18 0 0 0 .017.16.17.17 0 0 0 .134.08h10.941a.3.3 0 0 0 .176-.06.3.3 0 0 0 .106-.16 8.5 8.5 0 0 0 .291-2.216c0-4.517-3.51-8.18-7.84-8.18"/></svg>
@@ -1,7 +1,8 @@
1
1
  import { useState } from 'react'
2
2
  import reactLogo from './assets/react.svg'
3
3
  import viteLogo from './assets/vite.svg'
4
- import cloudflareLogo from './assets/Cloudflare_Logo.svg'
4
+ import cloudflareLogo from './assets/cloudflare.svg'
5
+ import heroImg from './assets/hero.png'
5
6
  import './App.css'
6
7
 
7
8
  function App() {
@@ -10,47 +11,136 @@ function App() {
10
11
 
11
12
  return (
12
13
  <>
13
- <div>
14
- <a href='https://vite.dev' target='_blank'>
15
- <img src={viteLogo} className='logo' alt='Vite logo' />
16
- </a>
17
- <a href='https://react.dev' target='_blank'>
18
- <img src={reactLogo} className='logo react' alt='React logo' />
19
- </a>
20
- <a href='https://workers.cloudflare.com/' target='_blank'>
21
- <img src={cloudflareLogo} className='logo cloudflare' alt='Cloudflare logo' />
22
- </a>
23
- </div>
24
- <h1>Vite + React + Cloudflare</h1>
25
- <div className='card'>
26
- <button
27
- onClick={() => setCount((count) => count + 1)}
28
- aria-label='increment'
29
- >
30
- count is {count}
31
- </button>
32
- <p>
33
- Edit <code>src/App.tsx</code> and save to test HMR
34
- </p>
35
- </div>
36
- <div className='card'>
37
- <button
38
- onClick={() => {
39
- fetch('/api/')
40
- .then((res) => res.json() as Promise<{ name: string }>)
41
- .then((data) => setName(data.name))
42
- }}
43
- aria-label='get name'
44
- >
45
- Name from API is: {name}
46
- </button>
47
- <p>
48
- Edit <code>worker/index.ts</code> to change the name
49
- </p>
50
- </div>
51
- <p className='read-the-docs'>
52
- Click on the Vite and React logos to learn more
53
- </p>
14
+ <section id="center">
15
+ <div className="hero">
16
+ <img src={heroImg} className="base" width="170" height="179" alt="" />
17
+ <img src={reactLogo} className="framework" alt="React logo" />
18
+ <img src={viteLogo} className="vite" alt="Vite logo" />
19
+ </div>
20
+ <div>
21
+ <h1>Get started with Cloudflare</h1>
22
+ <p>
23
+ Edit <code>src/App.tsx</code> or <code>worker/index.ts</code> and save to test <code>HMR</code>
24
+ </p>
25
+ </div>
26
+ <ul style={{ display: 'flex', gap: '1rem', listStyle: 'none', padding: 0 }}>
27
+ <li>
28
+ <button
29
+ className="counter"
30
+ onClick={() => setCount((count) => count + 1)}
31
+ >
32
+ Count is {count}
33
+ </button>
34
+ </li>
35
+ <li>
36
+ <button
37
+ className="counter"
38
+ onClick={() => {
39
+ fetch('/api/')
40
+ .then((res) => res.json())
41
+ .then((data) => setName(data.name))
42
+ }}
43
+ aria-label='get name'
44
+ >
45
+ Name from API is: {name}
46
+ </button>
47
+ </li>
48
+ </ul>
49
+
50
+
51
+ </section>
52
+
53
+ <div className="ticks"></div>
54
+
55
+ <section id="next-steps">
56
+ <div id="docs">
57
+ <svg className="icon" role="presentation" aria-hidden="true">
58
+ <use href="/icons.svg#documentation-icon"></use>
59
+ </svg>
60
+ <h2>Documentation</h2>
61
+ <p>Your questions, answered</p>
62
+ <ul>
63
+ <li>
64
+ <a href="https://vite.dev/" target="_blank">
65
+ <img className="logo" src={viteLogo} alt="" />
66
+ Explore Vite
67
+ </a>
68
+ </li>
69
+ <li>
70
+ <a href="https://react.dev/" target="_blank">
71
+ <img className="button-icon" src={reactLogo} alt="" />
72
+ Learn more
73
+ </a>
74
+ </li>
75
+ <li>
76
+ <a href="https://workers.cloudflare.com/" target="_blank">
77
+ <img className="button-icon" src={cloudflareLogo} alt="" />
78
+ Workers Docs
79
+ </a>
80
+ </li>
81
+ </ul>
82
+ </div>
83
+ <div id="social">
84
+ <svg className="icon" role="presentation" aria-hidden="true">
85
+ <use href="/icons.svg#social-icon"></use>
86
+ </svg>
87
+ <h2>Connect with us</h2>
88
+ <p>Join the Vite community</p>
89
+ <ul>
90
+ <li>
91
+ <a href="https://github.com/vitejs/vite" target="_blank">
92
+ <svg
93
+ className="button-icon"
94
+ role="presentation"
95
+ aria-hidden="true"
96
+ >
97
+ <use href="/icons.svg#github-icon"></use>
98
+ </svg>
99
+ GitHub
100
+ </a>
101
+ </li>
102
+ <li>
103
+ <a href="https://chat.vite.dev/" target="_blank">
104
+ <svg
105
+ className="button-icon"
106
+ role="presentation"
107
+ aria-hidden="true"
108
+ >
109
+ <use href="/icons.svg#discord-icon"></use>
110
+ </svg>
111
+ Discord
112
+ </a>
113
+ </li>
114
+ <li>
115
+ <a href="https://x.com/vite_js" target="_blank">
116
+ <svg
117
+ className="button-icon"
118
+ role="presentation"
119
+ aria-hidden="true"
120
+ >
121
+ <use href="/icons.svg#x-icon"></use>
122
+ </svg>
123
+ X.com
124
+ </a>
125
+ </li>
126
+ <li>
127
+ <a href="https://bsky.app/profile/vite.dev" target="_blank">
128
+ <svg
129
+ className="button-icon"
130
+ role="presentation"
131
+ aria-hidden="true"
132
+ >
133
+ <use href="/icons.svg#bluesky-icon"></use>
134
+ </svg>
135
+ Bluesky
136
+ </a>
137
+ </li>
138
+ </ul>
139
+ </div>
140
+ </section>
141
+
142
+ <div className="ticks"></div>
143
+ <section id="spacer"></section>
54
144
  </>
55
145
  )
56
146
  }
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="40" height="19" fill="none" viewBox="0 0 40 19"><path fill="#f6821f" d="m27.16 18.507.204-.735c.242-.873.152-1.68-.255-2.274-.374-.547-.998-.868-1.755-.906l-14.346-.19a.3.3 0 0 1-.127-.034.3.3 0 0 1-.099-.09.31.31 0 0 1-.03-.27.4.4 0 0 1 .128-.185.37.37 0 0 1 .205-.081l14.479-.192c1.717-.082 3.576-1.536 4.227-3.31l.826-2.25a.55.55 0 0 0 .022-.298C29.702 3.29 25.94 0 21.44 0c-4.146 0-7.667 2.792-8.928 6.673a4.1 4.1 0 0 0-2.978-.86c-1.99.206-3.589 1.877-3.786 3.953a4.6 4.6 0 0 0 .11 1.547C2.605 11.41 0 14.189 0 17.603q0 .459.065.911c.009.07.042.134.093.18.05.047.116.072.183.073l26.485.003h.007a.34.34 0 0 0 .205-.076.36.36 0 0 0 .122-.187"/><path fill="#fbad41" d="M31.94 8.153q-.2 0-.397.01a.2.2 0 0 0-.062.014.2.2 0 0 0-.091.061.24.24 0 0 0-.054.098l-.564 2.033c-.243.874-.152 1.68.254 2.274.375.547.998.868 1.756.906l3.058.191a.3.3 0 0 1 .123.035.28.28 0 0 1 .142.22.3.3 0 0 1-.015.14.4.4 0 0 1-.128.185.37.37 0 0 1-.205.08l-3.177.192c-1.725.083-3.585 1.536-4.235 3.31l-.23.626a.18.18 0 0 0 .017.16.17.17 0 0 0 .134.08h10.941a.3.3 0 0 0 .176-.06.3.3 0 0 0 .106-.16 8.5 8.5 0 0 0 .291-2.216c0-4.517-3.51-8.18-7.84-8.18"/></svg>
@@ -1,45 +0,0 @@
1
- #root {
2
- max-width: 1280px;
3
- margin: 0 auto;
4
- padding: 2rem;
5
- text-align: center;
6
- }
7
-
8
- .logo {
9
- height: 6em;
10
- padding: 1.5em;
11
- will-change: filter;
12
- transition: filter 300ms;
13
- }
14
- .logo:hover {
15
- filter: drop-shadow(0 0 2em #646cffaa);
16
- }
17
- .logo.react:hover {
18
- filter: drop-shadow(0 0 2em #61dafbaa);
19
- }
20
- .logo.cloudflare:hover {
21
- filter: drop-shadow(0 0 2em #f6821faa);
22
- }
23
-
24
- @keyframes logo-spin {
25
- from {
26
- transform: rotate(0deg);
27
- }
28
- to {
29
- transform: rotate(360deg);
30
- }
31
- }
32
-
33
- @media (prefers-reduced-motion: no-preference) {
34
- a:nth-of-type(2) .logo {
35
- animation: logo-spin infinite 20s linear;
36
- }
37
- }
38
-
39
- .card {
40
- padding: 2em;
41
- }
42
-
43
- .read-the-docs {
44
- color: #888;
45
- }
@@ -1,53 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
- <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
- viewBox="0 0 822.8 355.5" style="enable-background:new 0 0 822.8 355.5;" xml:space="preserve">
5
- <style type="text/css">
6
- .st0{fill:#FFFFFF;}
7
- @media(prefers-color-scheme:light){.st0{fill:#404242;}}
8
- .st1{fill:#FFFFFF;}
9
- .st2{fill:#FBAE40;}
10
- .st3{fill:#F58220;}
11
- </style>
12
- <g id="Page-1">
13
- <path id="CLOUDFLARE-_xAE_" class="st0" d="M772.2,252.6c-3.4,0-6.1-2.7-6.1-6.1c0-3.3,2.7-6.1,6.1-6.1c3.3,0,6.1,2.7,6.1,6.1
14
- C778.3,249.8,775.5,252.6,772.2,252.6L772.2,252.6z M772.2,241.6c-2.7,0-4.9,2.2-4.9,4.9s2.2,4.9,4.9,4.9c2.7,0,4.9-2.2,4.9-4.9
15
- S774.9,241.6,772.2,241.6L772.2,241.6z M775.3,249.7h-1.4l-1.2-2.3h-1.6v2.3h-1.3V243h3.2c1.4,0,2.3,0.9,2.3,2.2c0,1-0.6,1.7-1.4,2
16
- L775.3,249.7z M772.9,246.2c0.5,0,1-0.3,1-1c0-0.8-0.4-1-1-1h-2v2H772.9z M136.7,239.8h15.6v42.5h27.1v13.6h-42.7V239.8z
17
- M195.5,268v-0.2c0-16.1,13-29.2,30.3-29.2s30.1,12.9,30.1,29v0.2c0,16.1-13,29.2-30.3,29.2S195.5,284.1,195.5,268z M240.1,268
18
- v-0.2c0-8.1-5.8-15.1-14.4-15.1c-8.5,0-14.2,6.9-14.2,15v0.2c0,8.1,5.8,15.1,14.3,15.1C234.4,283,240.1,276.1,240.1,268z
19
- M275,271.3v-31.5h15.8V271c0,8.1,4.1,11.9,10.3,11.9c6.2,0,10.3-3.7,10.3-11.5v-31.6h15.8v31.1c0,18.1-10.3,26-26.3,26
20
- C285,296.9,275,288.9,275,271.3z M351,239.8h21.6c20,0,31.7,11.5,31.7,27.7v0.2c0,16.2-11.8,28.2-32,28.2H351V239.8z M372.9,282.1
21
- c9.3,0,15.5-5.1,15.5-14.2v-0.2c0-9-6.2-14.2-15.5-14.2h-6.3V282L372.9,282.1L372.9,282.1z M426.9,239.8h44.9v13.6h-29.4v9.6H469
22
- v12.9h-26.6v20h-15.5V239.8z M493.4,239.8h15.5v42.5h27.2v13.6h-42.7V239.8z M576.7,239.4h15l23.9,56.5h-16.7l-4.1-10h-21.6l-4,10
23
- h-16.3L576.7,239.4z M590.4,273.8l-6.2-15.9l-6.3,15.9H590.4z M635.6,239.8h26.5c8.6,0,14.5,2.2,18.3,6.1c3.3,3.2,5,7.5,5,13.1v0.2
24
- c0,8.6-4.6,14.3-11.5,17.2l13.4,19.6h-18L658,279h-6.8v17h-15.6V239.8z M661.4,266.7c5.3,0,8.3-2.6,8.3-6.6v-0.2
25
- c0-4.4-3.2-6.6-8.4-6.6h-10.2v13.4H661.4z M707.8,239.8h45.1V253h-29.7v8.5h26.9v12.3h-26.9v8.9h30.1v13.2h-45.5V239.8z
26
- M102.7,274.6c-2.2,4.9-6.8,8.4-12.8,8.4c-8.5,0-14.3-7.1-14.3-15.1v-0.2c0-8.1,5.7-15,14.2-15c6.4,0,11.3,3.9,13.3,9.3h16.4
27
- c-2.6-13.4-14.4-23.3-29.6-23.3c-17.3,0-30.3,13.1-30.3,29.2v0.2c0,16.1,12.8,29,30.1,29c14.8,0,26.4-9.6,29.4-22.4L102.7,274.6z"
28
- />
29
- <path id="flare" class="st1" d="M734.5,150.4l-40.7-24.7c-0.6-0.1-4.4,0.3-6.4-0.7c-1.4-0.7-2.5-1.9-3.2-4c-3.2,0-175.5,0-175.5,0
30
- v91.8h225.8V150.4z"/>
31
- <path id="right-cloud" class="st2" d="M692.2,125.8c-0.8,0-1.5,0.6-1.8,1.4l-4.8,16.7c-2.1,7.2-1.3,13.8,2.2,18.7
32
- c3.2,4.5,8.6,7.1,15.1,7.4l26.2,1.6c0.8,0,1.5,0.4,1.9,1c0.4,0.6,0.5,1.5,0.3,2.2c-0.4,1.2-1.6,2.1-2.9,2.2l-27.3,1.6
33
- c-14.8,0.7-30.7,12.6-36.3,27.2l-2,5.1c-0.4,1,0.3,2,1.4,2H758c1.1,0,2.1-0.7,2.4-1.8c1.6-5.8,2.5-11.9,2.5-18.2
34
- c0-37-30.2-67.2-67.3-67.2C694.5,125.7,693.3,125.7,692.2,125.8z"/>
35
- <path id="left-cloud" class="st3" d="M656.4,204.6c2.1-7.2,1.3-13.8-2.2-18.7c-3.2-4.5-8.6-7.1-15.1-7.4L516,176.9
36
- c-0.8,0-1.5-0.4-1.9-1c-0.4-0.6-0.5-1.4-0.3-2.2c0.4-1.2,1.6-2.1,2.9-2.2l124.2-1.6c14.7-0.7,30.7-12.6,36.3-27.2l7.1-18.5
37
- c0.3-0.8,0.4-1.6,0.2-2.4c-8-36.2-40.3-63.2-78.9-63.2c-35.6,0-65.8,23-76.6,54.9c-7-5.2-15.9-8-25.5-7.1
38
- c-17.1,1.7-30.8,15.4-32.5,32.5c-0.4,4.4-0.1,8.7,0.9,12.7c-27.9,0.8-50.2,23.6-50.2,51.7c0,2.5,0.2,5,0.5,7.5
39
- c0.2,1.2,1.2,2.1,2.4,2.1h227.2c1.3,0,2.5-0.9,2.9-2.2L656.4,204.6z"/>
40
- </g>
41
- <g>
42
- </g>
43
- <g>
44
- </g>
45
- <g>
46
- </g>
47
- <g>
48
- </g>
49
- <g>
50
- </g>
51
- <g>
52
- </g>
53
- </svg>
@@ -1,45 +0,0 @@
1
- #root {
2
- max-width: 1280px;
3
- margin: 0 auto;
4
- padding: 2rem;
5
- text-align: center;
6
- }
7
-
8
- .logo {
9
- height: 6em;
10
- padding: 1.5em;
11
- will-change: filter;
12
- transition: filter 300ms;
13
- }
14
- .logo:hover {
15
- filter: drop-shadow(0 0 2em #646cffaa);
16
- }
17
- .logo.react:hover {
18
- filter: drop-shadow(0 0 2em #61dafbaa);
19
- }
20
- .logo.cloudflare:hover {
21
- filter: drop-shadow(0 0 2em #f6821faa);
22
- }
23
-
24
- @keyframes logo-spin {
25
- from {
26
- transform: rotate(0deg);
27
- }
28
- to {
29
- transform: rotate(360deg);
30
- }
31
- }
32
-
33
- @media (prefers-reduced-motion: no-preference) {
34
- a:nth-of-type(2) .logo {
35
- animation: logo-spin infinite 20s linear;
36
- }
37
- }
38
-
39
- .card {
40
- padding: 2em;
41
- }
42
-
43
- .read-the-docs {
44
- color: #888;
45
- }
@@ -1,51 +0,0 @@
1
- <?xml version="1.0" encoding="utf-8"?>
2
- <!-- Generator: Adobe Illustrator 21.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
3
- <svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
4
- viewBox="0 0 822.8 355.5" style="enable-background:new 0 0 822.8 355.5;" xml:space="preserve">
5
- <style type="text/css">
6
- .st0{fill:#FFFFFF;}
7
- .st1{fill:#FBAE40;}
8
- .st2{fill:#F58220;}
9
- </style>
10
- <g id="Page-1">
11
- <path id="CLOUDFLARE-_xAE_" class="st0" d="M772.2,252.6c-3.4,0-6.1-2.7-6.1-6.1c0-3.3,2.7-6.1,6.1-6.1c3.3,0,6.1,2.7,6.1,6.1
12
- C778.3,249.8,775.5,252.6,772.2,252.6L772.2,252.6z M772.2,241.6c-2.7,0-4.9,2.2-4.9,4.9s2.2,4.9,4.9,4.9c2.7,0,4.9-2.2,4.9-4.9
13
- S774.9,241.6,772.2,241.6L772.2,241.6z M775.3,249.7h-1.4l-1.2-2.3h-1.6v2.3h-1.3V243h3.2c1.4,0,2.3,0.9,2.3,2.2c0,1-0.6,1.7-1.4,2
14
- L775.3,249.7z M772.9,246.2c0.5,0,1-0.3,1-1c0-0.8-0.4-1-1-1h-2v2H772.9z M136.7,239.8h15.6v42.5h27.1v13.6h-42.7V239.8z
15
- M195.5,268v-0.2c0-16.1,13-29.2,30.3-29.2s30.1,12.9,30.1,29v0.2c0,16.1-13,29.2-30.3,29.2S195.5,284.1,195.5,268z M240.1,268
16
- v-0.2c0-8.1-5.8-15.1-14.4-15.1c-8.5,0-14.2,6.9-14.2,15v0.2c0,8.1,5.8,15.1,14.3,15.1C234.4,283,240.1,276.1,240.1,268z
17
- M275,271.3v-31.5h15.8V271c0,8.1,4.1,11.9,10.3,11.9c6.2,0,10.3-3.7,10.3-11.5v-31.6h15.8v31.1c0,18.1-10.3,26-26.3,26
18
- C285,296.9,275,288.9,275,271.3z M351,239.8h21.6c20,0,31.7,11.5,31.7,27.7v0.2c0,16.2-11.8,28.2-32,28.2H351V239.8z M372.9,282.1
19
- c9.3,0,15.5-5.1,15.5-14.2v-0.2c0-9-6.2-14.2-15.5-14.2h-6.3V282L372.9,282.1L372.9,282.1z M426.9,239.8h44.9v13.6h-29.4v9.6H469
20
- v12.9h-26.6v20h-15.5V239.8z M493.4,239.8h15.5v42.5h27.2v13.6h-42.7V239.8z M576.7,239.4h15l23.9,56.5h-16.7l-4.1-10h-21.6l-4,10
21
- h-16.3L576.7,239.4z M590.4,273.8l-6.2-15.9l-6.3,15.9H590.4z M635.6,239.8h26.5c8.6,0,14.5,2.2,18.3,6.1c3.3,3.2,5,7.5,5,13.1v0.2
22
- c0,8.6-4.6,14.3-11.5,17.2l13.4,19.6h-18L658,279h-6.8v17h-15.6V239.8z M661.4,266.7c5.3,0,8.3-2.6,8.3-6.6v-0.2
23
- c0-4.4-3.2-6.6-8.4-6.6h-10.2v13.4H661.4z M707.8,239.8h45.1V253h-29.7v8.5h26.9v12.3h-26.9v8.9h30.1v13.2h-45.5V239.8z
24
- M102.7,274.6c-2.2,4.9-6.8,8.4-12.8,8.4c-8.5,0-14.3-7.1-14.3-15.1v-0.2c0-8.1,5.7-15,14.2-15c6.4,0,11.3,3.9,13.3,9.3h16.4
25
- c-2.6-13.4-14.4-23.3-29.6-23.3c-17.3,0-30.3,13.1-30.3,29.2v0.2c0,16.1,12.8,29,30.1,29c14.8,0,26.4-9.6,29.4-22.4L102.7,274.6z"
26
- />
27
- <path id="flare" class="st0" d="M734.5,150.4l-40.7-24.7c-0.6-0.1-4.4,0.3-6.4-0.7c-1.4-0.7-2.5-1.9-3.2-4c-3.2,0-175.5,0-175.5,0
28
- v91.8h225.8V150.4z"/>
29
- <path id="right-cloud" class="st1" d="M692.2,125.8c-0.8,0-1.5,0.6-1.8,1.4l-4.8,16.7c-2.1,7.2-1.3,13.8,2.2,18.7
30
- c3.2,4.5,8.6,7.1,15.1,7.4l26.2,1.6c0.8,0,1.5,0.4,1.9,1c0.4,0.6,0.5,1.5,0.3,2.2c-0.4,1.2-1.6,2.1-2.9,2.2l-27.3,1.6
31
- c-14.8,0.7-30.7,12.6-36.3,27.2l-2,5.1c-0.4,1,0.3,2,1.4,2H758c1.1,0,2.1-0.7,2.4-1.8c1.6-5.8,2.5-11.9,2.5-18.2
32
- c0-37-30.2-67.2-67.3-67.2C694.5,125.7,693.3,125.7,692.2,125.8z"/>
33
- <path id="left-cloud" class="st2" d="M656.4,204.6c2.1-7.2,1.3-13.8-2.2-18.7c-3.2-4.5-8.6-7.1-15.1-7.4L516,176.9
34
- c-0.8,0-1.5-0.4-1.9-1c-0.4-0.6-0.5-1.4-0.3-2.2c0.4-1.2,1.6-2.1,2.9-2.2l124.2-1.6c14.7-0.7,30.7-12.6,36.3-27.2l7.1-18.5
35
- c0.3-0.8,0.4-1.6,0.2-2.4c-8-36.2-40.3-63.2-78.9-63.2c-35.6,0-65.8,23-76.6,54.9c-7-5.2-15.9-8-25.5-7.1
36
- c-17.1,1.7-30.8,15.4-32.5,32.5c-0.4,4.4-0.1,8.7,0.9,12.7c-27.9,0.8-50.2,23.6-50.2,51.7c0,2.5,0.2,5,0.5,7.5
37
- c0.2,1.2,1.2,2.1,2.4,2.1h227.2c1.3,0,2.5-0.9,2.9-2.2L656.4,204.6z"/>
38
- </g>
39
- <g>
40
- </g>
41
- <g>
42
- </g>
43
- <g>
44
- </g>
45
- <g>
46
- </g>
47
- <g>
48
- </g>
49
- <g>
50
- </g>
51
- </svg>