Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
Show all changes
47 commits
Select commit Hold shift + click to select a range
4c15b8f
feat: homepage
rin-st Feb 14, 2025
25f35b4
refactor: joinBG + homepage
rin-st Feb 16, 2025
a5c5dd1
feat: remove debug from header
rin-st Feb 16, 2025
88fb1ac
fix: redundant classNames
rin-st Feb 16, 2025
3e221cf
fix: move connectedUser from homepage
rin-st Feb 16, 2025
3002bb7
chore: redundant imports
rin-st Feb 16, 2025
03e2002
Merge branch 'main' of github.com:BuidlGuidl/SpeedRunEthereum-v2 into…
rin-st Feb 17, 2025
29401e5
fix: lint errors
rin-st Feb 17, 2025
17c74e2
Merge branch 'main' of github.com:BuidlGuidl/SpeedRunEthereum-v2 into…
rin-st Feb 17, 2025
6002048
feat: plausible
rin-st Feb 17, 2025
091f299
fix: image position
rin-st Feb 17, 2025
7e93060
chore: clouds on mobile
rin-st Feb 17, 2025
faa4f68
fix: remove redundant files
rin-st Feb 18, 2025
36f621f
fix: remove isLast line
rin-st Feb 18, 2025
f2e563a
chore: remove gh repo link
rin-st Feb 18, 2025
6717475
fix: remove logo, balance and network, eth price
rin-st Feb 18, 2025
c0bc264
chore: hardcoded Portfolio button
rin-st Feb 18, 2025
102b51c
chore: update constants + add comments
rin-st Feb 18, 2025
6cc209e
chore: interface -> type
rin-st Feb 18, 2025
3e5f387
fix: start button click logic
rin-st Feb 18, 2025
5924ea2
feat: Hero component
rin-st Feb 18, 2025
9136983
fix: bgcard icon
rin-st Feb 18, 2025
d6f4014
refactor: ChallengeExpandedCard
rin-st Feb 18, 2025
afba6dd
fix: remove hideBottomBorder prop
rin-st Feb 18, 2025
cdbf36c
fix: tooltips
rin-st Feb 18, 2025
5b6b114
chore: fork me link
rin-st Feb 18, 2025
adb695a
fix: joinBG banner width
rin-st Feb 18, 2025
2c5a5be
fix: lint
rin-st Feb 18, 2025
a4edf4c
fix: space_grotesk font family
rin-st Feb 20, 2025
70f419d
refactor: bgButton + notifications
rin-st Feb 20, 2025
220be94
feat: thumnail and favicon
rin-st Feb 20, 2025
305706c
fix: joinbgbutton styles
rin-st Feb 20, 2025
756c68e
Merge branch 'main' of github.com:BuidlGuidl/SpeedRunEthereum-v2 into…
rin-st Feb 21, 2025
c05936f
feat: add description, sortOrder, disabled fields to schema; update h…
rin-st Feb 21, 2025
1ea1756
feat: make quest buttons clickable
rin-st Feb 21, 2025
ddbc9d4
chore: bgcard text color
rin-st Feb 21, 2025
430403a
fix: header/rainbow buttons
rin-st Feb 21, 2025
256bae2
feat: move enums out of schema
rin-st Feb 21, 2025
c45817f
feat: use actual types
rin-st Feb 21, 2025
db9508e
Merge branch 'main' of github.com:BuidlGuidl/SpeedRunEthereum-v2 into…
rin-st Feb 23, 2025
92699b2
chore: return socials to joinBgButton
rin-st Feb 23, 2025
d12c872
feat: adjust title and description
rin-st Feb 26, 2025
6794d7e
feat: move JoinBGButton logic to the hook
rin-st Feb 26, 2025
1733bf5
Revert "feat: move JoinBGButton logic to the hook"
rin-st Feb 26, 2025
9a89e26
chore: remove lockedTimestamp
rin-st Feb 26, 2025
a7001b2
fix: simplify and rename dep challenges util
rin-st Feb 26, 2025
6e50e65
feat: move utils
rin-st Feb 27, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
170 changes: 170 additions & 0 deletions packages/nextjs/app/_assets/icons/CrossedSwordsIcon.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
import React from "react";

const CrossedSwordsIcon = ({ className }: { className: string }) => (
<svg width="36" height="30" className={className} viewBox="0 0 36 30" fill="none" xmlns="http://www.w3.org/2000/svg">
<path
d="M23.9255 14.3374L25.516 15.9934L25.7926 17.5114L22.6116 20.5474L21.2285 19.9954L10.9938 9.85242L7.18393 5.85042L8.5497 3.38989L11.452 1.85339L15.2813 5.85042L17.3765 7.65045L19.6034 10.0939L23.9255 14.3374Z"
fill="#009E9E"
/>
<path
d="M28.0973 14.4011L29.617 12.8646H31.4185L32.5965 13.8328L30.8642 15.9074V17.4287L28.3698 20.8172L30.4485 23.3067L33.4592 25.9515L34.3287 28.2166L32.25 29.2539L30.8642 27.5942L28.5777 25.243L26.0833 22.6152L24.6975 24.1366H24.2125L21.9953 24.6898L20.1938 26.4878L18.4615 26.9027L17.7687 24.3883L20.1938 22.6152L21.6099 20.4023H24.2125L25.3658 18.9252L26.499 15.9074L28.0973 14.4011Z"
fill="#026262"
/>
<path
d="M28.1065 24.8613L26.5882 23.2039L25.6219 22.7896L28.1065 20.7179L30.591 22.7896L32.1094 24.8613L30.246 26.8639L28.1065 24.8613Z"
fill="#C8F5FF"
/>
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 20.8286 21.6373)" fill="#026262" />
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 27.0534 21.6373)" fill="#026262" />
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 31.2032 21.6373)" fill="#026262" />
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 29.1284 23.7122)" fill="#026262" />
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 29.1284 19.5624)" fill="#026262" />
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 29.1284 13.3375)" fill="#026262" />
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 31.2032 11.2625)" fill="#026262" />
<rect width="2.07493" height="2.07493" transform="matrix(-1 0 0 1 20.8286 25.787)" fill="#026262" />
<path
fillRule="evenodd"
clipRule="evenodd"
d="M16.6789 23.7122H18.7538V25.787H18.7538V27.862H16.6789V25.7871H16.6789V23.7122Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M20.8286 25.7871L20.8286 23.7122L22.9035 23.7122L22.9035 23.7122L24.9785 23.7122L24.9785 25.7871L22.9035 25.7871L22.9035 25.7871L20.8286 25.7871Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M33.2782 15.4124L31.2032 15.4124L31.2032 13.3374L31.2033 13.3374L31.2033 11.2625L33.2782 11.2625L33.2782 13.3375L33.2782 13.3375L33.2782 15.4124Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M31.2033 19.5624L29.1284 19.5624L29.1284 17.4875L31.2033 17.4875L31.2033 19.5624ZM31.2033 17.4874L29.1284 17.4874L29.1284 15.4125L31.2033 15.4125L31.2033 17.4874Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M33.2782 23.7122H31.2033V25.7871H33.2782V27.862H33.2781H31.2033V29.9369H33.2781H33.2782H35.3531V27.862H35.3531L35.3531 25.7871L33.2782 25.7871L33.2782 23.7122ZM31.2032 25.787H29.1283V27.862H31.2032V25.787Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M20.8286 21.6373L20.8286 19.5624L22.9035 19.5624L22.9035 19.5624L24.9785 19.5624L24.9785 21.6373L22.9035 21.6373L22.9035 21.6373L20.8286 21.6373Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M27.0534 19.5624L24.9785 19.5624L24.9785 17.4875L27.0534 17.4875L27.0534 19.5624ZM27.0534 17.4874L24.9785 17.4874L24.9785 15.4125L27.0534 15.4125L27.0534 17.4874Z"
fill="#026262"
/>
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 25.1097 17.6448)" fill="#026262" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 20.8417 17.4744)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 18.7931 15.4255)" fill="#009E9E" />
<rect width="2.21938" height="2.04866" transform="matrix(-1 0 0 1 16.7445 13.377)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 14.525 11.3282)" fill="#009E9E" />
<rect width="2.04866" height="2.21938" transform="matrix(-1 0 0 1 12.4764 9.10889)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 24.9391 13.377)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 22.8904 11.3282)" fill="#009E9E" />
<rect width="2.04866" height="2.21938" transform="matrix(-1 0 0 1 20.8417 9.10889)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 18.7931 7.06018)" fill="#009E9E" />
<rect width="2.21938" height="2.04866" transform="matrix(-1 0 0 1 16.7445 5.01135)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 10.4277 7.06018)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 8.37903 5.01135)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 8.37903 2.96289)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 8.37903 0.914307)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 10.4277 2.96289)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 10.4277 0.914307)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 14.525 2.96289)" fill="#009E9E" />
<rect width="2.04866" height="2.04866" transform="matrix(-1 0 0 1 12.4764 0.914307)" fill="#009E9E" />
<path
d="M11.4277 14.3374L9.83716 15.9934L9.56055 17.5114L12.7416 20.5474L14.1247 19.9954L24.3593 9.85242L28.1692 5.85042L26.8034 3.38989L23.9012 1.85339L20.0718 5.85042L17.9766 7.65045L15.7498 10.0939L11.4277 14.3374Z"
fill="#2FBABB"
/>
<path
d="M7.25576 14.4011L5.73605 12.8646H3.93454L2.75663 13.8328L4.48885 15.9074V17.4287L6.98325 20.8172L4.90458 23.3067L1.89385 25.9515L1.02441 28.2166L3.10308 29.2539L4.48885 27.5942L6.77538 25.243L9.26978 22.6152L10.6556 24.1366H11.1406L13.3578 24.6898L15.1593 26.4878L16.8915 26.9027L17.5844 24.3883L15.1593 22.6152L13.7432 20.4023H11.1406L9.98731 18.9252L8.85404 15.9074L7.25576 14.4011Z"
fill="#026262"
/>
<path
d="M7.24653 24.8613L8.76487 23.2039L9.73108 22.7896L7.24653 20.7179L4.76199 22.7896L3.24365 24.8613L5.10706 26.8639L7.24653 24.8613Z"
fill="#C8F5FF"
/>
<rect x="14.5244" y="21.6373" width="2.07493" height="2.07493" fill="#026262" />
<rect x="8.2998" y="21.6373" width="2.07493" height="2.07493" fill="#026262" />
<rect x="4.1499" y="21.6373" width="2.07493" height="2.07493" fill="#026262" />
<rect x="6.22485" y="23.7122" width="2.07493" height="2.07493" fill="#026262" />
<rect x="6.22485" y="19.5624" width="2.07493" height="2.07493" fill="#026262" />
<rect x="6.22485" y="13.3375" width="2.07493" height="2.07493" fill="#026262" />
<rect x="4.1499" y="11.2625" width="2.07493" height="2.07493" fill="#026262" />
<rect x="14.5244" y="25.787" width="2.07493" height="2.07493" fill="#026262" />
<path
fillRule="evenodd"
clipRule="evenodd"
d="M18.6744 23.7122H16.5995V25.787H16.5994V27.862H18.6744V25.7871H18.6744V23.7122Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M14.5244 25.7871L14.5244 23.7122L12.4495 23.7122L12.4495 23.7122L10.3747 23.7122L10.3747 25.7871L12.4496 25.7871L12.4496 25.7871L14.5244 25.7871Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M2.07498 15.4124L4.1499 15.4124L4.1499 13.3374L4.14985 13.3374L4.14985 11.2625L2.07492 11.2625L2.07492 13.3375L2.07498 13.3375L2.07498 15.4124Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M4.14993 19.5624L6.22485 19.5624L6.22485 17.4875L4.14993 17.4875L4.14993 19.5624ZM4.14989 17.4874L6.22481 17.4874L6.22481 15.4125L4.14989 15.4125L4.14989 17.4874Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M2.07499 23.7122H4.14992V25.787H6.22477V27.862H4.14985V25.7871H2.07499V27.862H2.07495V29.9369H2.25849e-05V27.862H6.36578e-05L6.38392e-05 25.7871L2.07499 25.7871L2.07499 23.7122ZM2.07499 27.862V29.9369H4.14992V27.862H2.07499Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M14.5244 21.6373L14.5244 19.5624L12.4496 19.5624L12.4496 19.5624L10.3747 19.5624L10.3747 21.6373L12.4495 21.6373L12.4495 21.6373L14.5244 21.6373Z"
fill="#026262"
/>
<path
fillRule="evenodd"
clipRule="evenodd"
d="M8.29971 19.5624L10.3746 19.5624L10.3746 17.4875L8.29971 17.4875L8.29971 19.5624ZM8.29971 17.4874L10.3746 17.4874L10.3746 15.4125L8.29971 15.4125L8.29971 17.4874Z"
fill="#026262"
/>
<rect x="10.2433" y="17.6448" width="2.04866" height="2.04866" fill="#026262" />
<rect x="14.5114" y="17.4744" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="16.5601" y="15.4255" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="18.6088" y="13.377" width="2.21938" height="2.04866" fill="#2FBABB" />
<rect x="20.828" y="11.3282" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="22.8767" y="9.10889" width="2.04866" height="2.21938" fill="#2FBABB" />
<rect x="10.4141" y="13.377" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="12.4626" y="11.3282" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="14.5114" y="9.10889" width="2.04866" height="2.21938" fill="#2FBABB" />
<rect x="16.5601" y="7.0603" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="18.6088" y="5.01147" width="2.21938" height="2.04866" fill="#2FBABB" />
<rect x="24.9254" y="7.0603" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="26.974" y="5.01147" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="26.974" y="2.96289" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="26.974" y="0.914307" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="24.9254" y="2.96289" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="24.9254" y="0.914307" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="20.828" y="2.96289" width="2.04866" height="2.04866" fill="#2FBABB" />
<rect x="22.8767" y="0.914307" width="2.04866" height="2.04866" fill="#2FBABB" />
</svg>
);

export default CrossedSwordsIcon;
13 changes: 13 additions & 0 deletions packages/nextjs/app/_assets/icons/DiscordIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* eslint react/jsx-props-no-spreading: off */
// ☝️ we want this component to be usable with chakra props
import React from "react";
import { chakra } from "@chakra-ui/react";

const DiscordIcon = props => (
<chakra.svg {...props} role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>{props.label ?? "Discord"}</title>
<path d="M20.317 4.3698a19.7913 19.7913 0 00-4.8851-1.5152.0741.0741 0 00-.0785.0371c-.211.3753-.4447.8648-.6083 1.2495-1.8447-.2762-3.68-.2762-5.4868 0-.1636-.3933-.4058-.8742-.6177-1.2495a.077.077 0 00-.0785-.037 19.7363 19.7363 0 00-4.8852 1.515.0699.0699 0 00-.0321.0277C.5334 9.0458-.319 13.5799.0992 18.0578a.0824.0824 0 00.0312.0561c2.0528 1.5076 4.0413 2.4228 5.9929 3.0294a.0777.0777 0 00.0842-.0276c.4616-.6304.8731-1.2952 1.226-1.9942a.076.076 0 00-.0416-.1057c-.6528-.2476-1.2743-.5495-1.8722-.8923a.077.077 0 01-.0076-.1277c.1258-.0943.2517-.1923.3718-.2914a.0743.0743 0 01.0776-.0105c3.9278 1.7933 8.18 1.7933 12.0614 0a.0739.0739 0 01.0785.0095c.1202.099.246.1981.3728.2924a.077.077 0 01-.0066.1276 12.2986 12.2986 0 01-1.873.8914.0766.0766 0 00-.0407.1067c.3604.698.7719 1.3628 1.225 1.9932a.076.076 0 00.0842.0286c1.961-.6067 3.9495-1.5219 6.0023-3.0294a.077.077 0 00.0313-.0552c.5004-5.177-.8382-9.6739-3.5485-13.6604a.061.061 0 00-.0312-.0286zM8.02 15.3312c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9555-2.4189 2.157-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.9555 2.4189-2.1569 2.4189zm7.9748 0c-1.1825 0-2.1569-1.0857-2.1569-2.419 0-1.3332.9554-2.4189 2.1569-2.4189 1.2108 0 2.1757 1.0952 2.1568 2.419 0 1.3332-.946 2.4189-2.1568 2.4189Z" />
</chakra.svg>
);

export default DiscordIcon;
13 changes: 13 additions & 0 deletions packages/nextjs/app/_assets/icons/EmailIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* eslint react/jsx-props-no-spreading: off */
// ☝️ we want this component to be usable with chakra props
import React from "react";
import { chakra } from "@chakra-ui/react";

const EmailIcon = props => (
<chakra.svg {...props} role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>Email</title>
<path d="M24 5.457v13.909c0 .904-.732 1.636-1.636 1.636h-3.819V11.73L12 16.64l-6.545-4.91v9.273H1.636A1.636 1.636 0 0 1 0 19.366V5.457c0-2.023 2.309-3.178 3.927-1.964L5.455 4.64 12 9.548l6.545-4.91 1.528-1.145C21.69 2.28 24 3.434 24 5.457z" />
</chakra.svg>
);

export default EmailIcon;
17 changes: 17 additions & 0 deletions packages/nextjs/app/_assets/icons/EthIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
/* eslint react/jsx-props-no-spreading: off */
// ☝️ we want this component to be usable with chakra props
import React from "react";
import { chakra } from "@chakra-ui/react";

const EthIcon = props => (
<chakra.svg {...props} display="inline" viewBox="0 0 100 100" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M50.4925 9L49.9353 10.8915V65.7723L50.4925 66.3279L75.9844 51.2696L50.4925 9Z" fill="#343434" />
<path d="M50.4925 9L25 51.2696L50.4925 66.3279V39.6902V9Z" fill="#8C8C8C" />
<path d="M50.4925 71.1511L50.1785 71.5338V91.0832L50.4925 91.9994L76 56.1006L50.4925 71.1511Z" fill="#3C3C3B" />
<path d="M50.4925 91.9994V71.1511L25 56.1006L50.4925 91.9994Z" fill="#8C8C8C" />
<path d="M50.4924 66.3279L75.9843 51.2697L50.4924 39.6902V66.3279Z" fill="#141414" />
<path d="M25 51.2697L50.4925 66.3279V39.6902L25 51.2697Z" fill="#393939" />
</chakra.svg>
);

export default EthIcon;
13 changes: 13 additions & 0 deletions packages/nextjs/app/_assets/icons/GithubIcon.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
/* eslint react/jsx-props-no-spreading: off */
// ☝️ we want this component to be usable with chakra props
import React from "react";
import { chakra } from "@chakra-ui/react";

const GithubIcon = props => (
<chakra.svg {...props} role="img" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
<title>GitHub</title>
<path d="M12 .297c-6.63 0-12 5.373-12 12 0 5.303 3.438 9.8 8.205 11.385.6.113.82-.258.82-.577 0-.285-.01-1.04-.015-2.04-3.338.724-4.042-1.61-4.042-1.61C4.422 18.07 3.633 17.7 3.633 17.7c-1.087-.744.084-.729.084-.729 1.205.084 1.838 1.236 1.838 1.236 1.07 1.835 2.809 1.305 3.495.998.108-.776.417-1.305.76-1.605-2.665-.3-5.466-1.332-5.466-5.93 0-1.31.465-2.38 1.235-3.22-.135-.303-.54-1.523.105-3.176 0 0 1.005-.322 3.3 1.23.96-.267 1.98-.399 3-.405 1.02.006 2.04.138 3 .405 2.28-1.552 3.285-1.23 3.285-1.23.645 1.653.24 2.873.12 3.176.765.84 1.23 1.91 1.23 3.22 0 4.61-2.805 5.625-5.475 5.92.42.36.81 1.096.81 2.22 0 1.606-.015 2.896-.015 3.286 0 .315.21.69.825.57C20.565 22.092 24 17.592 24 12.297c0-6.627-5.373-12-12-12" />
</chakra.svg>
);

export default GithubIcon;
Loading
Loading