Skip to content
Merged
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
58 commits
Select commit Hold shift + click to select a range
5e5f937
feat(website): header and footer design uplift (#2862)
webrdaniel Mar 5, 2025
67a75d2
Navbar dropdown small fixes
webrdaniel Mar 5, 2025
2c8d966
feat(website): search modal design uplift (#2867)
webrdaniel Mar 5, 2025
89e31d2
feat(website): redesign homepages (#2871)
baldasseva Mar 6, 2025
5e4eedc
add decorations to cta section
baldasseva Mar 6, 2025
97357bc
add decorative circle to cta section
baldasseva Mar 6, 2025
c676a32
LanguageInfoWidget improvements
webrdaniel Mar 7, 2025
c70965c
languageGetStartedContainer fix alignment
webrdaniel Mar 7, 2025
c79c6ab
codeblock fixes
webrdaniel Mar 7, 2025
70db3b0
cli example improvements
webrdaniel Mar 7, 2025
a99f877
fix ctaImage
webrdaniel Mar 7, 2025
7c32c7a
cta logo alignment
webrdaniel Mar 7, 2025
11331ec
small fixes
webrdaniel Mar 7, 2025
3893ff3
Merge branch 'master' of github.com:apify/crawlee into feat/design-up…
webrdaniel Mar 7, 2025
f1871cf
yarn lock fix
webrdaniel Mar 7, 2025
bcac624
yarn.lock fix
webrdaniel Mar 7, 2025
d8c8c8a
code blocks smaller padding
webrdaniel Mar 7, 2025
0c28c83
codeblock fix
webrdaniel Mar 7, 2025
0787a67
buttons fix
webrdaniel Mar 7, 2025
fbb52e1
fix blinking logo
webrdaniel Mar 7, 2025
f2078b3
navigation hiding versions fix
webrdaniel Mar 7, 2025
083e8aa
python codeblock fixes
webrdaniel Mar 7, 2025
722b423
navbar button hover
webrdaniel Mar 7, 2025
d90ed0e
logo loading fix
webrdaniel Mar 7, 2025
05b08c1
navbar logo not clickable
webrdaniel Mar 7, 2025
6ae3c43
code examples update
webrdaniel Mar 10, 2025
162ceae
remove comment
webrdaniel Mar 10, 2025
7a9e56c
updated code example
webrdaniel Mar 11, 2025
c76831b
CR fixes
webrdaniel Mar 12, 2025
b826212
update title
webrdaniel Mar 12, 2025
ad5046e
navigation hover
webrdaniel Mar 12, 2025
eac42f0
fix paddings
baldasseva Mar 13, 2025
4cd595f
fix search bar in header in tablet
baldasseva Mar 13, 2025
73c1bec
animated logo
webrdaniel Mar 13, 2025
7da5e44
Merge branch 'feat/design-uplift-2025' of github.com:apify/crawlee in…
webrdaniel Mar 13, 2025
2d54cac
align code centrally
baldasseva Mar 13, 2025
82f051c
Merge branch 'feat/design-uplift-2025' of https://github.com/apify/cr…
baldasseva Mar 13, 2025
9de6e99
optimized logo
webrdaniel Mar 14, 2025
fb33013
switch cli example in homepage
baldasseva Mar 17, 2025
ec23097
river codeblock fix
webrdaniel Mar 17, 2025
b1a1648
fix
webrdaniel Mar 17, 2025
7795a49
firefox logo fix
webrdaniel Mar 18, 2025
78051df
update theme switcher
webrdaniel Mar 18, 2025
57e6edc
added links to homepage
webrdaniel Mar 18, 2025
9c15daf
deploy to cloud button fix
webrdaniel Mar 18, 2025
c0536f8
link fix
webrdaniel Mar 18, 2025
c1d45d2
cards hover on light mode
webrdaniel Mar 18, 2025
293acb2
dynamic year in footer
baldasseva Mar 18, 2025
a1e0db2
remove unused import
baldasseva Mar 18, 2025
bb381fa
format Navbar/Content
baldasseva Mar 18, 2025
8109fa2
Apify platform casing
webrdaniel Mar 18, 2025
3e1784f
Merge branch 'feat/design-uplift-2025' of github.com:apify/crawlee in…
webrdaniel Mar 18, 2025
6f7ed9c
content fixes
webrdaniel Mar 18, 2025
82ef086
refactor: move `/docs` and `/api` routes behind `/js` prefix
B4nan Mar 19, 2025
d79eae1
refactor: use links with `/js` prefix internally
B4nan Mar 20, 2025
b0a7d03
chore: fix broken links in readmes and changelogs
barjin Mar 20, 2025
5cf4f40
chore: fix broken link in cards section
barjin Mar 20, 2025
2e9d5cf
small fixes
webrdaniel Mar 20, 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
78 changes: 16 additions & 62 deletions website/docusaurus.config.js

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This should be actually a clickable card element, here are defined the hover states for the cards and each section should lead to a specific docs part. I will ask Banán, where it should exactly lead 🙏
Screenshot 2025-03-11 at 16 39 14

Copy link
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ok, shouldn't we also use the action links as in the cards below, to indicate it is clickable?
Screenshot 2025-03-12 at 8 20 26

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No no, it is different kind of element and the clickable indication should be the hover state 🙏

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

There is still missing Run on Apify button on Python site 🙏 Screenshot 2025-03-17 at 13 11 54

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@webrdaniel I haven't read the comment so please ignore this 🙏 ❤️

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The drop down menu opens on tablet screen size when scrolling 🤔
https://github.com/user-attachments/assets/f7c6b2bd-f63b-4d31-8932-3a1793d8ceaf

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
/* eslint-disable global-require,import/no-extraneous-dependencies */
/* eslint-disable global-require */
const { externalLinkProcessor } = require('./tools/utils/externalLink');

const packages = [
Expand Down Expand Up @@ -34,7 +34,7 @@ const packagesOrder = [

/** @type {Partial<import('@docusaurus/types').DocusaurusConfig>} */
module.exports = {
title: 'Crawlee · Build reliable crawlers. Fast.',
title: 'Crawlee for JavaScript · Build reliable crawlers. Fast.',
tagline: 'Build reliable crawlers. Fast.',
url: 'https://crawlee.dev',
baseUrl: '/',
Expand Down Expand Up @@ -223,53 +223,6 @@ module.exports = {
label: 'Blog',
position: 'left',
},
{
type: 'dropdown',
label: 'Node.js',
position: 'left',
items: [
{
label: 'Node.js',
href: '#',
target: '_self',
rel: 'dofollow',
},
{
label: 'Python',
href: 'https://crawlee.dev/python',
target: '_self',
rel: 'dofollow',
},
],
},
{
type: 'docsVersionDropdown',
position: 'left',
dropdownItemsAfter: [
{
href: 'https://sdk.apify.com/docs/guides/getting-started',
label: '2.2',
},
{
href: 'https://sdk.apify.com/docs/1.3.1/guides/getting-started',
label: '1.3',
},
],
},
{
href: 'https://github.com/apify/crawlee',
label: 'GitHub',
title: 'View on GitHub',
position: 'right',
className: 'icon',
},
{
href: 'https://discord.com/invite/jyEM2PRvMU',
label: 'Discord',
title: 'Chat on Discord',
position: 'right',
className: 'icon',
},
],
},
colorMode: {
Expand Down Expand Up @@ -308,18 +261,14 @@ module.exports = {
to: 'api/core',
},
{
label: 'Upgrading to v3',
to: 'docs/upgrading/upgrading-to-v3',
label: 'Changelog',
to: 'api/core/changelog',
},
],
},
{
title: 'Community',
title: 'Product',
items: [
{
label: 'Blog',
to: 'blog',
},
{
label: 'Discord',
href: 'https://discord.com/invite/jyEM2PRvMU',
Expand All @@ -332,6 +281,11 @@ module.exports = {
label: 'Twitter',
href: 'https://twitter.com/apify',
},
{
label: 'YouTube',
href: 'https://www.youtube.com/apify',
},

],
},
{
Expand All @@ -352,20 +306,20 @@ module.exports = {
],
},
],
logo: {
src: 'img/apify_logo.svg',
href: '/',
width: '60px',
height: '60px',
},
},
algolia: {
appId: '5JC94MPMLY',
apiKey: '267679200b833c2ca1255ab276731869', // search only (public) API key
indexName: 'crawlee',
placeholder: 'Search documentation',
algoliaOptions: {
facetFilters: ['version:VERSION'],
},
translations: {
button: {
buttonText: 'Search documentation...',
},
},
},
}),
};
1 change: 1 addition & 0 deletions website/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,7 @@
"raw-loader": "^4.0.2",
"react": "^19.0.0",
"react-dom": "^19.0.0",
"react-github-btn": "^1.4.0",
"react-lite-youtube-embed": "^2.3.52",
"stream-browserify": "^3.0.0",
"unist-util-visit": "^5.0.0"
Expand Down
23 changes: 23 additions & 0 deletions website/src/components/Button.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
import Link from '@docusaurus/Link';
import clsx from 'clsx';
import React from 'react';

import styles from './Button.module.css';
import CrawleeSvg from '../../static/img/crawlee-logo-monocolor.svg';

export default function Button({ children, to, withIcon, type = 'primary', className, isBig }) {
return (
<Link to={to} target="_self" rel="dofollow">
<span className={clsx(
className,
styles.button,
type === 'primary' && styles.buttonPrimary,
type === 'secondary' && styles.buttonSecondary,
isBig && styles.big,
)}>
{withIcon && <CrawleeSvg />}
{children}
</span>
</Link>
);
}
63 changes: 63 additions & 0 deletions website/src/components/Button.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,63 @@
.button {
display: inline-flex;
align-items: center;
text-align: center;
padding: 8px 16px;
border-radius: 8px;
font-family: (--ifm-font-family-base);
font-size: 16px;
font-style: normal;
font-weight: 500;
line-height: 24px;
cursor: pointer;
transition: background-color 0.2s;

svg {
margin-right: 8px;
}
}

.buttonPrimary {
background-color: var(--color-black-action);
color: var(--color-text-on-primary);
border: none;

path {
stroke: var(--color-text-on-primary);
&:first-child {
fill: var(--color-text-on-primary);
}
}
}

.buttonPrimary:hover {
background-color: var(--color-primary-action-hover);
}

.buttonSecondary {
background-color: var(--color-background);
color: var(--color-text);
border: 1px solid var(--color-border);

path {
stroke: var(--color-black-action);
&:first-child {
fill: var(--color-black-action);
}
}
}

.buttonSecondary:hover {
border: 1px solid var(--color-text);
}

.big {
padding: 12px 24px;
}

/* TABLET */
@media (min-width: 768px) {
.button {
width: auto;
}
}
34 changes: 34 additions & 0 deletions website/src/components/CopyButton.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
/* eslint-disable max-len */
import clsx from 'clsx';
import React, { useState } from 'react';

import styles from './CopyButton.module.css';

export default function CopyButton({ copyText, compact = false, className }) {
const [copied, setCopied] = useState(false);
const copy = async () => {
await navigator.clipboard.writeText(copyText);
setCopied(true);
setTimeout(() => setCopied(false), 2000);
};
return <button
type="button"
aria-label="Copy code to clipboard"
title="Copy"
onClick={copy}
className={clsx(className, styles.copyButton, compact ? styles.copyButtonCompact : styles.copyButtonDefault)}
>
{copied
? <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path fillRule="evenodd" clipRule="evenodd" d="M18.0303 5.09467C18.3232 5.38756 18.3232 5.86244 18.0303 6.15533L8.03033 16.1553C7.73744 16.4482 7.26256 16.4482 6.96967 16.1553L2.59467 11.7803C2.30178 11.4874 2.30178 11.0126 2.59467 10.7197C2.88756 10.4268 3.36244 10.4268 3.65533 10.7197L7.5 14.5643L16.9697 5.09467C17.2626 4.80178 17.7374 4.80178 18.0303 5.09467Z" />
</svg>

: <svg width="20" height="20" viewBox="0 0 20 20" xmlns="http://www.w3.org/2000/svg">
<path
fillRule="evenodd"
clipRule="evenodd"
d="M8.375 2.375C7.13236 2.375 6.125 3.38236 6.125 4.625V6.125H4.625C3.38236 6.125 2.375 7.13236 2.375 8.375V15.375C2.375 16.6176 3.38236 17.625 4.625 17.625H11.625C12.8676 17.625 13.875 16.6176 13.875 15.375V13.875H15.375C16.6176 13.875 17.625 12.8676 17.625 11.625V4.625C17.625 3.38236 16.6176 2.375 15.375 2.375H8.375ZM13.875 12.375H15.375C15.7892 12.375 16.125 12.0392 16.125 11.625V4.625C16.125 4.21079 15.7892 3.875 15.375 3.875H8.375C7.96079 3.875 7.625 4.21079 7.625 4.625V6.125H11.625C12.8676 6.125 13.875 7.13236 13.875 8.375V12.375ZM4.625 7.625C4.21079 7.625 3.875 7.96079 3.875 8.375V15.375C3.875 15.7892 4.21079 16.125 4.625 16.125H11.625C12.0392 16.125 12.375 15.7892 12.375 15.375V8.375C12.375 7.96079 12.0392 7.625 11.625 7.625H4.625Z" />
</svg>
}
</button>;
}
37 changes: 37 additions & 0 deletions website/src/components/CopyButton.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
.copyButton {
all: unset;
display: inline-flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
cursor: pointer;
fill: var(--color-icon);

svg {
flex-shrink: 0;
}
}

.copyButtonDefault {
width: 28px;
height: 28px;
background-color: var(--color-background-muted);
border: 1px solid var(--color-border);
border-radius: 6px;
transition: background-color 0.12s ease-out;

&:hover {
background-color: var(--color-hover);
}

svg {
padding: 1px;
}
}

.copyButtonCompact {
svg {
width: 16px;
height: 16px;
}
}
26 changes: 26 additions & 0 deletions website/src/components/Homepage/HomepageCliExample.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
import React from 'react';

import CopyButton from '../CopyButton';
import styles from './HomepageCliExample.module.css';

const cliCommand = `npx crawlee create my-crawler`;

export default function CliExample() {
return (
<section className={styles.cliExampleSection}>
<div className={styles.cliExampleTitle}>
Or start with a template from our CLI
</div>
<code className={styles.cliExampleCodeBlock}>
<pre>
<span className={styles.cliCommandPrefix}>$</span>
{cliCommand}
<CopyButton copyText={cliCommand} />
</pre>
</code>
<div className={styles.cliExampleSubtitle}>
Built with 🤍 by Apify. Forever free and open-source.
</div>
</section>
);
}
68 changes: 68 additions & 0 deletions website/src/components/Homepage/HomepageCliExample.module.css
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
.cliExampleSection {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
text-align: center;
padding: 16px;
}

.cliExampleTitle {
color: var(--color-text-muted);
font-size: 18px;
font-style: normal;
font-weight: 400;
line-height: 28px;
margin-bottom: 16px;
}

.cliExampleCodeBlock {
width: fit-content;
height: fit-content;
padding: 0;
border: 0;
margin-bottom: 18px;
width: 100%;

pre {
margin: 0;
width: 100%;
padding: 8px 16px;
background-color: var(--color-background-muted);
border: 1px solid var(--color-border);
display: flex;
align-items: center;
gap: 16px;
font-size: 14px;
line-height: 20px;

button {
margin-left: auto;
}
}

.cliCommandPrefix {
color: var(--color-text-muted);
user-select: none;
}

/* TABLET */
@media (min-width: 768px) {
max-width: 526px;
}
}

.cliExampleSubtitle {
color: var(--color-text-subtle);
font-size: 16px;
font-style: normal;
font-weight: 400;
line-height: 24px;
}

/* TABLET */
@media (min-width: 768px) {
.cliExampleSection {
padding: 64px 0;
}
}
Loading