Add a download page for preview builds (#640)

- Make downloads data-driven, create a database of versions;
- Add a custom plugin to generate download URLs;
- Use the new plugin for the regular downloads page as well.
This commit is contained in:
Yuri Sizov
2023-05-17 20:36:53 +02:00
committed by GitHub
parent 7e9a8a59b8
commit 5c406d2903
50 changed files with 1403 additions and 601 deletions

View File

@@ -11,3 +11,8 @@ trim_trailing_whitespace = true
[*.{yml,yaml}]
indent_style = space
indent_size = 2
# Ruby scripts and plugins for Jekyll
[*.rb]
indent_style = space
indent_size = 2

26
.gitignore vendored
View File

@@ -13,3 +13,29 @@ vendor/
asset-library/
mirrorlist/
qa/
# OS-specific files
# Linux
*~
.directory
# macOS
.DS_Store
__MACOSX
# Windows
# https://github.com/github/gitignore/blob/main/Global/Windows.gitignore
[Tt]humbs.db
[Tt]humbs.db:encryptable
ehthumbs.db
ehthumbs_vista.db
*.stackdump
[Dd]esktop.ini
$RECYCLE.BIN/
*.cab
*.msi
*.msix
*.msm
*.msp
*.lnk

View File

@@ -152,18 +152,34 @@ locally, some configuration options may need to be different. To define those, `
### Updating Godot download version
When a new stable build of the engine is released, you need to add its number and date to the `data/_versions.yml`
file. It has several lists, one for each maintained major version of Godot. Pick the correct one, and **at the top of the list**
add something similar to the following:
All download information on the website is data-driven. This means that to change the information about the current
stable version, or on-going version previews, you don't need to modify pages directly. Instead, data files must be
updated.
The main file for keeping track of every official version is `data/_versions.yml`. It contains exactly one record
per each official release, including pre-releases. This file should be updated every time there is a new official
build available for download.
To create a new version, add the following block to the file:
```
- name: "4.0.1"
flavor: "stable"
release_date: "17 March 2023"
- name: "4.0.1"
flavor: "stable"
release_date: "20 March 2023"
release_notes: "/article/maintenance-release-godot-4-0-1/"
```
After this change is merged and the website is built, everything referencing the engine version should be updated
automatically, including download links for every platform.
Make sure to order entries correctly, with the higher version number being closer to the top. Use the `flavor` field
to mark release as stable or as one of the pre-release builds. Make sure to always fill out the release date, and the release
notes link, if available.
When a new build for an existing version is published, update its corresponding block, changing the flavor and the release
information. Make sure to update this information when publishing the release notes.
There are two additional files providing data for download pages and links: `_data/download_configs.yml` and
`_data/download_platforms.yml`. These files don't normally require changes and are used as a static reference table.
They define descriptions, tags, and filename slugs for all downloadable builds, as well as order for downloads on
some pages.
## Resources

View File

@@ -0,0 +1,53 @@
defaults:
4:
templates: export_templates.tpz
editor:
android.apk: android_editor.apk
linux.64: linux.x86_64.zip
linux.32: linux.x86_32.zip
macos.universal: macos.universal.zip
windows.64: win64.exe.zip
windows.32: win32.exe.zip
web: web_editor.zip
extras:
aar_library: template_release.aar
mono:
templates: mono_export_templates.tpz
editor:
linux.64: mono_linux_x86_64.zip
linux.32: mono_linux_x86_32.zip
macos.universal: mono_macos.universal.zip
windows.64: mono_win64.zip
windows.32: mono_win32.zip
3:
templates: export_templates.tpz
editor:
android.apk: android_editor.apk
linux.64: x11.64.zip
linux.32: x11.32.zip
macos.universal: osx.universal.zip
windows.64: win64.exe.zip
windows.32: win32.exe.zip
linux_server.headless.64: linux_headless.64.zip
linux_server.64: linux_server.64.zip
web: web_editor.zip
extras:
aar_library: release.aar
mono:
templates: mono_export_templates.tpz
editor:
linux.64: mono_x11_64.zip
linux.32: mono_x11_32.zip
macos.universal: mono_osx.universal.zip
windows.64: mono_win64.zip
windows.32: mono_win32.zip
linux_server.headless.64: mono_linux_headless_64.zip
linux_server.64: mono_linux_server_64.zip
extras:
aar_library: mono.release.aar
2:
1:

View File

@@ -0,0 +1,80 @@
- name: "templates"
title: "Export templates"
caption: ""
tags:
- "Used to export your games to all supported platforms"
- name: "aar_library"
title: "AAR library"
caption: ""
tags:
- Android plugins
- Java
- Kotlin
- name: "android.apk"
title: "Android"
caption: "Universal APK (ARM64 + ARMv7 + x86_64 + x86)"
tags:
- APK download
- ARM64/v7
- x86 (64 & 32 bit)
- name: "android.playstore"
title: "Android"
caption: "Play Store Universal (ARM64 + ARMv7 + x86_64 + x86)"
tags:
- Play Store
- ARM64/v7
- x86 (64 & 32 bit)
- name: "linux.32"
title: "Linux"
caption: "Standard (x86)"
tags:
- 32 bit
- name: "linux.64"
title: "Linux"
caption: "Standard (x86_64)"
tags:
- 64 bit
- name: "linux_server.64"
title: "Linux Server"
caption: "Standard (x86_64)"
tags:
- 64 bit
- name: "linux_server.headless.64"
title: "Linux Server"
caption: "Headless (x86_64)"
tags:
- 64 bit
- Headless
- name: "macos.universal"
title: "macOS"
caption: "Universal (x86_64 + Apple Silicon)"
tags:
- Intel/Apple Silicon
- 64 bit
- name: "web"
title: "Web editor"
caption: ""
tags:
- Self-hosted
- Cross-platform
- name: "windows.32"
title: "Windows"
caption: "Standard (x86)"
tags:
- 32 bit
- name: "windows.64"
title: "Windows"
caption: "Standard (x86_64)"
tags:
- 64 bit

View File

@@ -1,17 +1,246 @@
godot_3:
- name: "3.5.2"
flavor: "stable"
release_date: "7 March 2023"
- name: "3.5.1"
flavor: "stable"
release_date: "28 September 2022"
godot_4:
- name: "4.0.2"
flavor: "stable"
release_date: "4 April 2023"
- name: "4.0.1"
flavor: "stable"
release_date: "20 March 2023"
- name: "4.0"
flavor: "stable"
release_date: "1 March 2023"
- name: "4.1"
flavor: "dev2"
release_date: "10 May 2023"
release_notes: "/article/dev-snapshot-godot-4-1-dev-2/"
- name: "4.0.3"
flavor: "rc2"
release_date: "12 May 2023"
release_notes: "/article/release-candidate-godot-4-0-3-rc-2/"
- name: "4.0.2"
flavor: "stable"
release_date: "4 April 2023"
release_notes: "/article/maintenance-release-godot-4-0-2/"
featured: "4"
- name: "4.0.1"
flavor: "stable"
release_date: "20 March 2023"
release_notes: "/article/maintenance-release-godot-4-0-1/"
- name: "4.0"
flavor: "stable"
release_date: "1 March 2023"
release_notes: "/article/godot-4-0-sets-sail/"
- name: "3.6"
flavor: "beta1"
release_date: "13 April 2023"
release_notes: "/article/dev-snapshot-godot-3-6-beta-1/"
- name: "3.5.2"
flavor: "stable"
release_date: "7 March 2023"
release_notes: "/article/maintenance-release-godot-3-5-2/"
featured: "3"
- name: "3.5.1"
flavor: "stable"
release_date: "28 September 2022"
release_notes: "/article/maintenance-release-godot-3-5-1/"
- name: "3.5"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-3-5-cant-stop-wont-stop/"
- name: "3.4.5"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-5/"
- name: "3.4.4"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-4/"
- name: "3.4.3"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-3/"
- name: "3.4.2"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-2/"
- name: "3.4.1"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-4-1/"
- name: "3.4"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-3-4-is-released/"
- name: "3.3.4"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-3-4/"
- name: "3.3.3"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-3-3/"
- name: "3.3.2"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-3-2/"
- name: "3.3.1"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-3-1/"
- name: "3.3"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-3-3-has-arrived/"
- name: "3.2.3"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-2-3/"
- name: "3.2.2"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-2-2/"
- name: "3.2.1"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-2-1/"
- name: "3.2"
flavor: "stable"
release_date: ""
release_notes: "/article/here-comes-godot-3-2/"
- name: "3.1.2"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-1-2/"
- name: "3.1.1"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-1-1/"
- name: "3.1"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-3-1-released/"
- name: "3.0.6"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-0-6/"
- name: "3.0.5"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-0-5/"
- name: "3.0.4"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-0-4/"
- name: "3.0.3"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-0-3/"
- name: "3.0.2"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-302/"
- name: "3.0.1"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-3-0-1/"
- name: "3.0"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-3-0-released/"
- name: "2.1.6"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-1-6/"
- name: "2.1.5"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-1-5/"
- name: "2.1.4"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-1-4/"
- name: "2.1.3"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-1-3/"
- name: "2.1.2"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-1-2/"
- name: "2.1.1"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-1-1/"
- name: "2.1"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-reaches-2-1-stable/"
- name: "2.0.4.1"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-0-4/"
- name: "2.0.4"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-0-4/"
- name: "2.0.3"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-0-3/"
- name: "2.0.2"
flavor: "stable"
release_date: ""
release_notes: "/article/maintenance-release-godot-2-0-2/"
- name: "2.0.1"
flavor: "stable"
release_date: ""
release_notes: "/article/updates-on-the-release-cycle-and-godot-2-0-1/"
- name: "2.0"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-engine-reaches-2-0-stable/"
- name: "1.1"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-1-1-out/"
- name: "1.0"
flavor: "stable"
release_date: ""
release_notes: "/article/godot-engine-reaches-1-0/"

View File

@@ -7,7 +7,7 @@
<img class="nav-logo dark-logo" src="/assets/logo_dark.svg" width="136" height="48" alt="Godot Engine">
</a>
<label for="nav_toggle_cb" id="nav_toggle_btn">
<img src="/assets/hamburger.svg" width="24" height="24" alt="">
<img src="/assets/icons/hamburger.svg" width="24" height="24" alt="Main menu">
</label>
</div>

View File

@@ -21,7 +21,7 @@
<link rel="alternate" type="application/rss+xml" title="Godot News" href="/rss.xml">
<link rel="icon" href="/assets/favicon.png" sizes="any">
<link rel="icon" href="/assets/favicon.svg" type="image/svg+xml">
<link rel="stylesheet" href="/assets/css/main.css?105">
<link rel="stylesheet" href="/assets/css/main.css?106">
<link rel="stylesheet" href="/assets/css/tobii.min.css">
<link rel="preload" as="font" href="/assets/fonts/Montserrat-Bold.woff2" crossorigin>
<link rel="preload" as="font" href="/assets/fonts/Montserrat-ExtraBold.woff2" crossorigin>

View File

@@ -18,7 +18,7 @@ layout: default
}
</style>
{% assign stable_version = site.data.versions.godot_3 | find: "flavor", "stable" %}
{% assign stable_version = site.data.versions | find: "featured", "3" %}
<div class="hero">
<div class="hero-wrapper">
@@ -28,26 +28,28 @@ layout: default
{% assign featured_downloads = page.downloads | where: "featured", "true" %}
{% for download in featured_downloads %}
{% capture download_url %}
{% if download.custom %}
{{download.custom}}
{% else %}
https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_{{ download.slug }}
{% endif %}
{% endcapture %}
{% capture download_url %}
{% if download.custom %}
{{ download.custom }}
{% else %}
{{ stable_version | make_download: download.platform, download.mono }}
{% endif %}
{% endcapture %}
<div class="main-download">
<a href="{{ download_url }}" class="btn btn-download btn-download-main{% if forloop.index > 1 %}2{% endif %}">
<div class="download-title">
<img src="/assets/icons/{{ page.platform | slugify }}.svg" alt="({{ page.platform }})">
Godot Engine{% if download.featured_flavor %} - {{ download.featured_flavor }}{% endif %}
</div>
<div class="download-hint">{{ stable_version.name }}</div>
</a>
<p class="main-download-details">
<strong>{% for tag in download.tags %}{{ tag }} · {% endfor %}</strong>{{ stable_version.release_date }}
</p>
</div>
{% assign platform_info = site.data.download_platforms | find: "name", download.platform %}
<div class="main-download">
<a href="{{ download_url }}" class="btn btn-download btn-download-main{% if forloop.index > 1 %}2{% endif %}">
<div class="download-title">
<img src="/assets/images/platforms/{{ page.platform | slugify }}.svg" alt="({{ page.platform }})">
Godot Engine{% if download.featured_flavor %} - {{ download.featured_flavor }}{% endif %}
</div>
<div class="download-hint">{{ stable_version.name }}</div>
</a>
<p class="main-download-details">
<strong>{% for tag in platform_info.tags %}{{ tag }} · {% endfor %}{% if download.mono %}C# support · {% endif %}</strong>{{ stable_version.release_date }}
</p>
</div>
{% endfor %}
@@ -70,7 +72,7 @@ layout: default
<div id="links" class="platform-details">
<div class="card base-padding">
<h3>Requirements</h3>
<ul>
<li>OpenGL 2.1 / OpenGL ES 2.0 compatible hardware</li>
</ul>
@@ -92,34 +94,51 @@ layout: default
{% for download in page.downloads %}
{% capture download_url %}
{% if download.custom %}
{{download.custom}}
{% else %}
https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_{{ download.slug }}
{% endif %}
{% endcapture %}
{% capture download_url %}
{% if download.custom %}
{{ download.custom }}
{% else %}
{{ stable_version | make_download: download.platform, download.mono }}
{% endif %}
{% endcapture %}
{% assign platform_info = site.data.download_platforms | find: "name", download.platform %}
<div class="download">
<a href="{{ download_url }}" class="download-link">
{{ platform_info.title }}{% if download.mono %} - .NET{% endif %}
{% unless platform_info.caption == empty %} - {{ platform_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in platform_info.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}
{% if download.mono %} · C# support{% endif %}
</span>
</div>
<div class="download">
<a href="{{ download_url }}" class="download-link">{{ download.caption }}</a>
<span class="download-details">{% for tag in download.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}</span>
</div>
{% endfor %}
{% unless page.ignore_export %}
{% assign templates_info = site.data.download_platforms | find: "name", "templates" %}
<div class="download">
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_export_templates.tpz">
Export templates (Standard)
<a href="{{ stable_version | make_download: "templates", false }}">
{{ templates_info.title }}
{% unless templates_info.caption == empty %} - {{ templates_info.caption }}{% endunless %}
</a>
<span class="download-details">Used to export your games to all supported platforms</span>
<span class="download-details">
{% for tag in templates_info.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}
</span>
</div>
{% unless page.ignore_mono %}
<div class="download">
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_mono_export_templates.tpz">
Export templates (.NET)
</a>
<span class="download-details">Used to export your games to all supported platforms · C# support</span>
</div>
<div class="download">
<a href="{{ stable_version | make_download: "templates", true }}">
{{ templates_info.title }} - .NET
{% unless templates_info.caption == empty %} - {{ templates_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in templates_info.tags %}{{ tag }} · {% endfor %}C# support
</span>
</div>
{% endunless %}
{% endunless %}
@@ -140,7 +159,7 @@ layout: default
<div id="digital-stores" class="card base-padding digital-stores">
<div>
<p>Godot Engine is also available on digital distribution platforms:</p>
<div class="digital-store-list">
<a class="btn btn-digital-store" href="https://godotengine.itch.io/godot" title="Godot Engine on itch.io">
<div class="digital-store-logo">
@@ -156,7 +175,7 @@ layout: default
</a>
</div>
</div>
<div>
<div class="digital-stores-notes">
<ul>
<li>Digital store versions <strong>do not</strong> include .NET/C# support.</li>
<li><strong>Steam</strong> version is available as a <code>stable-3.5</code> beta branch.</li>
@@ -170,30 +189,30 @@ layout: default
<div class="platforms-wrapper">
<div id="platforms" class="container" style="overflow: hidden;">
<h2>Supported platforms</h2>
<div class="tabs platform-tabs">
<a href="/download/3.x/android" class="tab title-font {% if page.platform == 'Android' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/android.svg" title="Android" alt="Android" />
<img width="24" height="24" src="/assets/images/platforms/android.svg" title="Android" alt="Android" />
<span>Android</span>
</a>
<a href="/download/3.x/linux" class="tab title-font {% if page.platform == 'Linux' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/linux.svg" title="Linux" alt="Linux" />
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" />
<span>Linux</span>
</a>
<a href="/download/3.x/macos" class="tab title-font {% if page.platform == 'macOS' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/macos.svg" title="macOS" alt="macOS" />
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" />
<span>macOS</span>
</a>
<a href="/download/3.x/windows" class="tab title-font {% if page.platform == 'Windows' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/windows.svg" title="Windows" alt="Windows" />
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" />
<span>Windows</span>
</a>
<a href="/download/3.x/server" class="tab title-font {% if page.platform == 'Linux Server' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/linux-server.svg" title="Linux Server" alt="Linux Server" />
<img width="24" height="24" src="/assets/images/platforms/linux-server.svg" title="Linux Server" alt="Linux Server" />
<span>Linux Server</span>
</a>
<a href="https://editor.godotengine.org/releases/{{stable_version.name}}.stable/" target="_blank" class="tab title-font">
<img width="24" height="24" src="/assets/icons/html5.svg" title="Web Editor" alt="Web Editor" />
<img width="24" height="24" src="/assets/images/platforms/web.svg" title="Web Editor" alt="Web Editor" />
<span>Web Editor</span>
</a>
</div>
@@ -226,16 +245,20 @@ layout: default
</div>
<div class="other-download-card">
{% assign aar_library_info = site.data.download_platforms | find: "name", "aar_library" %}
<h3>AAR library for Android</h3>
<p>Use it to develop Android plugins in Java or Kotlin using the Godot API.</p>
<p>
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/godot-lib.{{stable_version.name}}.stable.release.aar">
AAR library (standard)
<a href="{{ stable_version | make_download: "aar_library", false }}">
{{ aar_library_info.title }}
{% unless aar_library_info.caption == empty %} - {{ aar_library_info.caption }}{% endunless %}
</a>
</p>
<p>
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/godot-lib.{{stable_version.name}}.stable.mono.release.aar">
AAR library (.NET / C#)
<a href="{{ stable_version | make_download: "aar_library", true }}">
{{ aar_library_info.title }} - .NET / C#
{% unless aar_library_info.caption == empty %} {{ aar_library_info.caption }}{% endunless %}
</a>
</p>
</div>
@@ -252,20 +275,43 @@ layout: default
</div>
</div>
<div id="open-source" class="text-center base-padding">
<img class="flex-center dark-invert" src="/assets/download/dl_icon_github.png" width="200" height="200" alt="">
<p>
Godot's development is <strong>open</strong>. This means that you can
fix or improve any part of the engine yourself and choose
whether to contribute it back or keep it private.
</p>
<p>
New features are always available to use and test, without the need of
having to wait for the next major release. Compiling Godot from source
is <em>very easy</em> and the process is well-documented for each platform.
To obtain the source code, please visit the
<a href="https://github.com/godotengine/godot">GitHub project page</a>.
</p>
<div class="unstable-downloads">
<div id="previews" class="unstable-download-previews">
<h2>Preview builds</h2>
<p>
Godot is continuously being developed with several minor releases
being published every year. To ensure high quality and stability
of each release, we also publish preview builds at various stages of
development.
</p>
<p>
Help test Godot's new features or be the first to benefit from upcoming
improvements by downloading a preview build!
</p>
<a class="btn" href="/download/preview">
See latest preview builds
</a>
</div>
<div id="open-source" class="unstable-download-source">
<img class="flex-center dark-invert" src="/assets/download/dl_icon_github.png" width="200" height="200" alt="A GitHub logo">
<div>
<p>
Don't want to wait for official releases? You can compile Godot from source!
</p>
<ul>
<li>
Get the source code from the <a href="https://github.com/godotengine/godot">GitHub project page</a>.
</li>
<li>
Follow the instructions from the
<a href="https://docs.godotengine.org/en/3.5/development/compiling/index.html">official documentation</a>.
</li>
</ul>
</div>
</div>
</div>
</div>
@@ -284,7 +330,7 @@ layout: default
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download');
downloadButtons.forEach((it) => {
@@ -335,7 +381,7 @@ layout: default
</ul>
<div class="btn-back-to-downloads">
<img src="/assets/cross.svg" width="24" height="24" alt="">
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup">
</div>
</div>
</div>

View File

@@ -13,7 +13,7 @@ layout: default
}
</style>
{% assign stable_version = site.data.versions.godot_4 | find: "flavor", "stable" %}
{% assign stable_version = site.data.versions | find: "featured", "4" %}
<div class="hero">
<div class="hero-wrapper">
@@ -23,26 +23,28 @@ layout: default
{% assign featured_downloads = page.downloads | where: "featured", "true" %}
{% for download in featured_downloads %}
{% capture download_url %}
{% if download.custom %}
{{download.custom}}
{% else %}
https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_{{ download.slug }}
{% endif %}
{% endcapture %}
{% capture download_url %}
{% if download.custom %}
{{ download.custom }}
{% else %}
{{ stable_version | make_download: download.platform, download.mono }}
{% endif %}
{% endcapture %}
<div class="main-download">
<a href="{{ download_url }}" class="btn btn-download btn-download-main{% if forloop.index > 1 %}2{% endif %}">
<div class="download-title">
<img src="/assets/icons/{{ page.platform | slugify }}.svg" alt="({{ page.platform }})">
Godot Engine{% if download.featured_flavor %} - {{ download.featured_flavor }}{% endif %}
</div>
<div class="download-hint">{{ stable_version.name }}</div>
</a>
<p class="main-download-details">
<strong>{% for tag in download.tags %}{{ tag }} · {% endfor %}</strong>{{ stable_version.release_date }}
</p>
</div>
{% assign platform_info = site.data.download_platforms | find: "name", download.platform %}
<div class="main-download">
<a href="{{ download_url }}" class="btn btn-download btn-download-main{% if forloop.index > 1 %}2{% endif %}">
<div class="download-title">
<img src="/assets/images/platforms/{{ page.platform | slugify }}.svg" alt="({{ page.platform }})">
Godot Engine{% if download.featured_flavor %} - {{ download.featured_flavor }}{% endif %}
</div>
<div class="download-hint">{{ stable_version.name }}</div>
</a>
<p class="main-download-details">
<strong>{% for tag in platform_info.tags %}{{ tag }} · {% endfor %}{% if download.mono %}C# support · {% endif %}</strong>{{ stable_version.release_date }}
</p>
</div>
{% endfor %}
@@ -65,7 +67,7 @@ layout: default
<div id="links" class="platform-details">
<div class="card base-padding">
<h3>Requirements</h3>
<ul>
<li><strong>Recommended:</strong> Vulkan 1.0 compatible hardware</li>
<li><strong>Minimal:</strong> OpenGL 3.3 / OpenGL ES 3.0 compatible hardware</li>
@@ -87,34 +89,51 @@ layout: default
{% for download in page.downloads %}
{% capture download_url %}
{% if download.custom %}
{{download.custom}}
{% else %}
https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_{{ download.slug }}
{% endif %}
{% endcapture %}
{% capture download_url %}
{% if download.custom %}
{{ download.custom }}
{% else %}
{{ stable_version | make_download: download.platform, download.mono }}
{% endif %}
{% endcapture %}
{% assign platform_info = site.data.download_platforms | find: "name", download.platform %}
<div class="download">
<a href="{{ download_url }}" class="download-link">
{{ platform_info.title }}{% if download.mono %} - .NET{% endif %}
{% unless platform_info.caption == empty %} - {{ platform_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in platform_info.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}
{% if download.mono %} · C# support{% endif %}
</span>
</div>
<div class="download">
<a href="{{ download_url }}" class="download-link">{{ download.caption }}</a>
<span class="download-details">{% for tag in download.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}</span>
</div>
{% endfor %}
{% unless page.ignore_export %}
{% assign templates_info = site.data.download_platforms | find: "name", "templates" %}
<div class="download">
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_export_templates.tpz">
Export templates (Standard)
<a href="{{ stable_version | make_download: "templates", false }}">
{{ templates_info.title }}
{% unless templates_info.caption == empty %} - {{ templates_info.caption }}{% endunless %}
</a>
<span class="download-details">Used to export your games to all supported platforms</span>
<span class="download-details">
{% for tag in templates_info.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}
</span>
</div>
{% unless page.ignore_mono %}
<div class="download">
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/Godot_v{{stable_version.name}}-stable_mono_export_templates.tpz">
Export templates (.NET)
</a>
<span class="download-details">Used to export your games to all supported platforms · C# support</span>
</div>
<div class="download">
<a href="{{ stable_version | make_download: "templates", true }}">
{{ templates_info.title }} - .NET
{% unless templates_info.caption == empty %} - {{ templates_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in templates_info.tags %}{{ tag }} · {% endfor %}C# support
</span>
</div>
{% endunless %}
{% endunless %}
@@ -135,7 +154,7 @@ layout: default
<div id="digital-stores" class="card base-padding digital-stores">
<div>
<p>Godot Engine is also available on digital distribution platforms:</p>
<div class="digital-store-list">
<a class="btn btn-digital-store" href="https://godotengine.itch.io/godot" title="Godot Engine on itch.io">
<div class="digital-store-logo">
@@ -157,7 +176,7 @@ layout: default
</a>
</div>
</div>
<div>
<div class="digital-stores-notes">
<ul>
<li>Digital store versions <strong>do not</strong> include .NET/C# support.</li>
</ul>
@@ -169,26 +188,26 @@ layout: default
<div class="platforms-wrapper">
<div id="platforms" class="container" style="overflow: hidden;">
<h2>Supported platforms</h2>
<div class="tabs platform-tabs">
<a href="/download/android" class="tab title-font {% if page.platform == 'Android' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/android.svg" title="Android" alt="Android" />
<img width="24" height="24" src="/assets/images/platforms/android.svg" title="Android" alt="Android" />
<span>Android</span>
</a>
<a href="/download/linux" class="tab title-font {% if page.platform == 'Linux' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/linux.svg" title="Linux" alt="Linux" />
<img width="24" height="24" src="/assets/images/platforms/linux.svg" title="Linux" alt="Linux" />
<span>Linux</span>
</a>
<a href="/download/macos" class="tab title-font {% if page.platform == 'macOS' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/macos.svg" title="macOS" alt="macOS" />
<img width="24" height="24" src="/assets/images/platforms/macos.svg" title="macOS" alt="macOS" />
<span>macOS</span>
</a>
<a href="/download/windows" class="tab title-font {% if page.platform == 'Windows' %} active {% endif %}">
<img width="24" height="24" src="/assets/icons/windows.svg" title="Windows" alt="Windows" />
<img width="24" height="24" src="/assets/images/platforms/windows.svg" title="Windows" alt="Windows" />
<span>Windows</span>
</a>
<a href="https://editor.godotengine.org/releases/{{stable_version.name}}.stable/godot.editor.html" target="_blank" class="tab title-font">
<img width="24" height="24" src="/assets/icons/html5.svg" title="Web Editor" alt="Web Editor" />
<img width="24" height="24" src="/assets/images/platforms/web.svg" title="Web Editor" alt="Web Editor" />
<span>Web Editor</span>
</a>
</div>
@@ -221,16 +240,14 @@ layout: default
</div>
<div class="other-download-card">
{% assign aar_library_info = site.data.download_platforms | find: "name", "aar_library" %}
<h3>AAR library for Android</h3>
<p>Use it to develop Android plugins in Java or Kotlin using the Godot API.</p>
<p>
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/godot-lib.{{stable_version.name}}.stable.template_release.aar">
AAR library (standard)
</a>
</p>
<p>
<a href="https://github.com/godotengine/godot/releases/download/{{stable_version.name}}-stable/godot-lib.{{stable_version.name}}.stable.mono.template_release.aar">
AAR library (.NET / C#)
<a href="{{ stable_version | make_download: "aar_library", false }}">
{{ aar_library_info.title }}
{% unless aar_library_info.caption == empty %} - {{ aar_library_info.caption }}{% endunless %}
</a>
</p>
</div>
@@ -247,20 +264,43 @@ layout: default
</div>
</div>
<div id="open-source" class="text-center base-padding">
<img class="flex-center dark-invert" src="/assets/download/dl_icon_github.png" width="200" height="200" alt="">
<p>
Godot's development is <strong>open</strong>. This means that you can
fix or improve any part of the engine yourself and choose
whether to contribute it back or keep it private.
</p>
<p>
New features are always available to use and test, without the need of
having to wait for the next major release. Compiling Godot from source
is <em>very easy</em> and the process is well-documented for each platform.
To obtain the source code, please visit the
<a href="https://github.com/godotengine/godot">GitHub project page</a>.
</p>
<div class="unstable-downloads">
<div id="previews" class="unstable-download-previews">
<h2>Preview builds</h2>
<p>
Godot is continuously being developed with several minor releases
being published every year. To ensure high quality and stability
of each release, we also publish preview builds at various stages of
development.
</p>
<p>
Help test Godot's new features or be the first to benefit from upcoming
improvements by downloading a preview build!
</p>
<a class="btn" href="/download/preview">
See latest preview builds
</a>
</div>
<div id="open-source" class="unstable-download-source">
<img class="flex-center dark-invert" src="/assets/download/dl_icon_github.png" width="200" height="200" alt="A GitHub logo">
<div>
<p>
Don't want to wait for official releases? You can compile Godot from source!
</p>
<ul>
<li>
Get the source code from the <a href="https://github.com/godotengine/godot">GitHub project page</a>.
</li>
<li>
Follow the instructions from the
<a href="https://docs.godotengine.org/en/stable/contributing/development/compiling/index.html">official documentation</a>.
</li>
</ul>
</div>
</div>
</div>
</div>
@@ -279,7 +319,7 @@ layout: default
thankYouBackButton.addEventListener('click', () => {
thankYouWrapper.style.display = 'none';
});
// Open from the main download buttons.
const downloadButtons = document.querySelectorAll('.btn-download');
downloadButtons.forEach((it) => {
@@ -330,7 +370,7 @@ layout: default
</ul>
<div class="btn-back-to-downloads">
<img src="/assets/cross.svg" width="24" height="24" alt="">
<img src="/assets/icons/cross.svg" width="24" height="24" alt="Close this popup">
</div>
</div>
</div>

View File

@@ -60,43 +60,43 @@ layout: default
{% if page.windows %}
<img src="/assets/icons/windows.svg" alt="Windows" title="Windows" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/windows.svg" alt="Windows" title="Windows" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if page.macos %}
<img src="/assets/icons/macos.svg" alt="Mac" title="Mac" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/macos.svg" alt="Mac" title="Mac" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if page.linux %}
<img src="/assets/icons/linux.svg" alt="Linux" title="Linux" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/linux.svg" alt="Linux" title="Linux" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if page.switch %}
<img src="/assets/icons/switch.svg" alt="Nintendo Switch" title="Switch" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/switch.svg" alt="Nintendo Switch" title="Switch" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if page.html5 %}
<img src="/assets/icons/html5.svg" alt="HTML5" title="HTML5" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/web.svg" alt="HTML5" title="HTML5" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if page.android %}
<img src="/assets/icons/android.svg" alt="Android" title="Android" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/android.svg" alt="Android" title="Android" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if page.ios %}
<img src="/assets/icons/ios.svg" alt="iOS" title="iOS" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/ios.svg" alt="iOS" title="iOS" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if page.playstation %}
<img src="/assets/icons/playstation.svg" alt="PlayStation" title="PlayStation" style="margin: 0 0.125rem"
<img src="/assets/images/platforms/playstation.svg" alt="PlayStation" title="PlayStation" style="margin: 0 0.125rem"
width="24" height="24">
{% endif %}
{% if page.xbox %}
<img src="/assets/icons/xbox.svg" alt="Xbox" title="Xbox" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/xbox.svg" alt="Xbox" title="Xbox" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
</div>

127
_plugins/make_download.rb Normal file
View File

@@ -0,0 +1,127 @@
# Generate a download URL for a particular version of the engine.
#
# See `_data/download_configs.yml` for a reference table of slugs.
HOST_TUXFAMILY = "https://downloads.tuxfamily.org/godotengine"
HOST_GITHUB = "https://github.com/godotengine/godot/releases/download"
module MakeDownloadFilter
def get_download_platforms(input, mono = false)
slugs_defaults = get_download_slugs(input, mono)
if slugs_defaults.nil?
return []
end
platforms = slugs_defaults["editor"].keys
if slugs_defaults.key?("templates")
platforms.push("templates")
end
if slugs_defaults.key?("extras")
extras = slugs_defaults["extras"].keys
for extra in extras do
platforms.push(extra)
end
end
return platforms
end
def get_download_primary(input, mono = false)
slugs_defaults = get_download_slugs(input, mono)
if slugs_defaults.nil?
return {}
end
primary = {}
platforms = slugs_defaults["editor"].keys
for platform in platforms do
platform_key = platform.split(".")[0]
unless primary.key?(platform_key)
primary[platform_key] = platform
end
end
if slugs_defaults.key?("templates")
primary["templates"] = "templates"
end
return primary
end
def make_download(input, platform, mono = false, host = "github")
version_name = input["name"]
version_flavor = input["flavor"]
slugs_defaults = get_download_slugs(input, mono)
if slugs_defaults.nil?
return "#"
end
mono_slug = ""
if mono
mono_slug = "/mono"
end
download_slug = ""
if platform == "templates" and slugs_defaults.key?(platform)
download_slug = slugs_defaults[platform]
elsif slugs_defaults["editor"].key?(platform)
download_slug = slugs_defaults["editor"][platform]
elsif slugs_defaults.key?("extras") and slugs_defaults["extras"].key?(platform)
download_slug = slugs_defaults["extras"][platform]
else
# Unknown platform key, abort.
return "#"
end
download_file = ""
if platform == "aar_library"
download_file = "godot-lib.#{version_name}.#{version_flavor}.#{download_slug}"
else
download_file = "Godot_v#{version_name}-#{version_flavor}_#{download_slug}"
end
if host == "github"
return "#{HOST_GITHUB}/#{version_name}-#{version_flavor}/#{download_file}"
elsif host == "tuxfamily"
if version_flavor == "stable"
return "#{HOST_TUXFAMILY}/#{version_name}/#{mono_slug}/#{download_file}"
else
return "#{HOST_TUXFAMILY}/#{version_name}/#{version_flavor}#{mono_slug}/#{download_file}"
end
end
end
private
def get_download_slugs(input, mono = false)
version_major = input["name"].split(".")[0].to_i
# Access the site data for the slug reference table.
site_data = @context.registers[:site].data
download_configs = site_data["download_configs"]
# If there is no config for this major version, abort.
if not download_configs["defaults"].key?(version_major)
return nil
end
slugs_defaults = download_configs["defaults"][version_major]
if mono
# Requesting mono, but there is no config for mono, abort.
if not slugs_defaults.key?("mono")
return nil
end
slugs_defaults = slugs_defaults["mono"]
end
return slugs_defaults
end
end
Liquid::Template.register_filter(MakeDownloadFilter)

View File

@@ -1,10 +1,17 @@
AVERAGE_SECONDS_PER_MONTH = 2628000
# Add a custom `site.outdated_article_threshold` variable.
# We use `site.time` that holds the build time as a base, but since you can't do math in
# the template language we can't use it there directly.
Jekyll::Hooks.register(:site, :after_init) do |site|
# Articles that have a date older than this at build time are considered outdated.
# see `_includes/outdated_article_notice.html`
site.config["outdated_article_threshold"] = site.time - AVERAGE_SECONDS_PER_MONTH * 18
# Articles that have a date older than this at build time
# are considered outdated.
#
# See also `_includes/outdated_article_notice.html`.
AVERAGE_SECONDS_PER_MONTH = 2628000
OUTDATED_THRESHOLD_IN_MONTHS = 18
Jekyll::Hooks.register :site, :after_init do |site|
# We use `site.time` that holds the build time as a base.
# As we can't do math directly in the article template, we
# prepare a value that we can compare to instead.
threshold = site.time - AVERAGE_SECONDS_PER_MONTH * OUTDATED_THRESHOLD_IN_MONTHS
site.config["outdated_article_threshold"] = threshold
end

View File

@@ -59,7 +59,8 @@
}
.btn.btn-download-main,
.btn.btn-download-main2 {
.btn.btn-download-main2,
.btn.btn-download-primary {
background-color: var(--primary-color);
color: white;
display: inline-flex;
@@ -74,16 +75,18 @@
}
.btn.btn-download-main img,
.btn.btn-download-main2 img {
.btn.btn-download-main2 img,
.btn.btn-download-primary img {
display: inline-block;
filter: invert();
margin-right: 10px;
width: 20px;
width: 22px;
vertical-align: text-bottom;
}
.btn.btn-download-main .download-hint,
.btn.btn-download-main2 .download-hint {
.btn.btn-download-main2 .download-hint,
.btn.btn-download-primary .download-hint {
background-color: var(--primary-color-text-title);
color: var(--dark-color);
line-height: 32px;
@@ -91,7 +94,8 @@
}
.btn.btn-download-main .download-title,
.btn.btn-download-main2 .download-title {
.btn.btn-download-main2 .download-title,
.btn.btn-download-primary .download-title {
color: var(--primary-color-text-title);
font-size: 20px;
line-height: 32px;
@@ -109,6 +113,7 @@
.platform-details .download {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 6px;
margin-bottom: 8px;
}
@@ -150,7 +155,7 @@
}
@media (min-width: 768px) {
.other-download {
grid-template-columns: 1fr 1fr 1fr;
grid-template-columns: 1fr 1fr 1fr;
}
}
@@ -256,6 +261,45 @@
vertical-align: text-bottom;
}
.digital-stores-notes {
display: flex;
flex-direction: column;
justify-content: flex-end;
}
.digital-stores-notes ul {
margin: 0;
}
.digital-stores-notes ul li:last-child {
margin-bottom: 0;
}
.unstable-downloads {
display: flex;
flex-direction: column;
gap: 24px;
}
.unstable-download-previews {
max-width: 768px;
}
.unstable-download-previews .btn {
margin-top: 16px;
}
.unstable-download-source {
display: flex;
align-items: center;
gap: 28px;
}
@media (max-width: 768px) {
.unstable-download-source {
flex-direction: column;
gap: 8px;
}
}
.thankyou-wrapper {
position: fixed;
top: 0;

View File

@@ -47,11 +47,14 @@
--card-background-color: #ffffff;
--card-footer-color: #eeeeee;
--button-background-color: #ffffff;
--button-card-background-color: #d7dee6;
--footer-color: rgb(175, 180, 220);
--footer-background-color: #414d69;
--pagination-active-color: #284786;
--placeholder-text-color: #7a87a2;
--hero-text-background-color: #1a1a1a7a;
--code-background-color: #dcdfe2;
--codeblock-background-color: #282b2e;
--codeblock-color: #e0e2e4;
@@ -63,6 +66,7 @@
--download-hero-color: hsla(0, 0%, 100%, 0.9);
--download-main-details-color: #f1f1f1;
--download-table-color: rgba(160, 160, 160, 0.05);
--platform-note-background-color: rgb(48 86 210 / 9%);
--platform-code-background-color: #e5ebf1;
@@ -134,6 +138,7 @@
--card-background-color: #333639;
--card-footer-color: #505356;
--button-background-color: #333639;
--button-card-background-color: #55595e;
--footer-color: hsla(0, 0%, 100%, 0.625);
--footer-background-color: #333639;
--pagination-active-color: #4080ff;
@@ -149,6 +154,7 @@
--download-hero-color: hsla(0, 0%, 100%, 0.9);
--download-main-details-color: #f1f1f1;
--download-table-color: rgba(0, 0, 0, 0.2);
--platform-note-background-color: rgb(255 255 255 / 9%);
--platform-code-background-color: #282b2e;
@@ -1293,7 +1299,7 @@ section.hero .credits {
position: absolute;
bottom: 14px;
right: 30px;
background: #1a1a1a7a;
background: var(--hero-text-background-color);
border-radius: 8px;
padding: 2px 10px;
opacity: 0.6;

Binary file not shown.

After

Width:  |  Height:  |  Size: 172 KiB

View File

@@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="android" class="svg-inline--fa fa-android fa-w-18" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 576 512"><path fill="currentColor" d="M420.55,301.93a24,24,0,1,1,24-24,24,24,0,0,1-24,24m-265.1,0a24,24,0,1,1,24-24,24,24,0,0,1-24,24m273.7-144.48,47.94-83a10,10,0,1,0-17.27-10h0l-48.54,84.07a301.25,301.25,0,0,0-246.56,0L116.18,64.45a10,10,0,1,0-17.27,10h0l47.94,83C64.53,202.22,8.24,285.55,0,384H576c-8.24-98.45-64.54-181.78-146.85-226.55"></path></svg>

Before

Width:  |  Height:  |  Size: 536 B

View File

Before

Width:  |  Height:  |  Size: 397 B

After

Width:  |  Height:  |  Size: 397 B

View File

Before

Width:  |  Height:  |  Size: 464 B

After

Width:  |  Height:  |  Size: 464 B

View File

Before

Width:  |  Height:  |  Size: 932 B

After

Width:  |  Height:  |  Size: 932 B

View File

@@ -1 +0,0 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1792 1664"><path d="M128 1408h1024v-128H128v128zm0-512h1024V768H128v128zm1568 448a96 96 0 1 0-192 0 96 96 0 0 0 192 0zM128 384h1024V256H128v128zm1568 448a96 96 0 1 0-192 0 96 96 0 0 0 192 0zm0-512a96 96 0 1 0-192 0 96 96 0 0 0 192 0zm96 832v384H0v-384h1792zm0-512v384H0V640h1792zm0-512v384H0V128h1792z"/></svg>

Before

Width:  |  Height:  |  Size: 364 B

View File

@@ -1,121 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg:svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
width="777"
height="777.28528"
id="svg4312"
version="1.1">
<svg:title
id="title5291">Stycil Tux</svg:title>
<svg:defs
id="defs4314">
<svg:linearGradient
id="linearGradient3910-6-0-8-7-7-8">
<svg:stop
style="stop-color:#000000;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-7-4" />
<svg:stop
style="stop-color:#4c4c4c;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-6-9" />
</svg:linearGradient>
<svg:linearGradient
id="linearGradient3910-6-0-8-7-81">
<svg:stop
style="stop-color:#ffffff;stop-opacity:1;"
offset="0"
id="stop3912-5-9-3-8-5" />
<svg:stop
style="stop-color:#a6a6a6;stop-opacity:1;"
offset="1"
id="stop3914-0-1-3-0-64" />
</svg:linearGradient>
<svg:linearGradient
id="linearGradient4565-3">
<svg:stop
style="stop-color:#939393;stop-opacity:1;"
offset="0"
id="stop4567-1" />
<svg:stop
style="stop-color:#000000;stop-opacity:1;"
offset="1"
id="stop4569-9" />
</svg:linearGradient>
<svg:linearGradient
id="linearGradient4617-7">
<svg:stop
id="stop4619-9"
offset="0"
style="stop-color:#ffffff;stop-opacity:0;" />
<svg:stop
id="stop4621-5"
offset="1"
style="stop-color:#a6a6a6;stop-opacity:0.5" />
</svg:linearGradient>
<svg:clipPath
clipPathUnits="userSpaceOnUse"
id="clipPath4719-2">
<svg:rect
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
id="rect4721-4"
width="1352.3417"
height="1135.7903"
x="-490.55533"
y="-358.505" />
</svg:clipPath>
</svg:defs>
<svg:metadata
id="metadata4317">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title>Stycil Tux</dc:title>
<dc:creator>
<cc:Agent>
<dc:title>Cheeseness (Josh Bush)</dc:title>
</cc:Agent>
</dc:creator>
<dc:subject>
<rdf:Bag>
<rdf:li>tux linux icon</rdf:li>
</rdf:Bag>
</dc:subject>
<dc:description>A stylised stencil (a &quot;stycil&quot; - isn't that catchy) inspired by Larry Ewing's Tux illustration.
http://en.wikipedia.org/wiki/Tux
You're under no obligation to do so, but if you do something with this, drop me a line - I'd love to hear about it.
cheese@twolofbees.com</dc:description>
<dc:date>2012-01-02</dc:date>
<cc:license
rdf:resource="http://creativecommons.org/publicdomain/zero/1.0/" />
<dc:source>http://twolofbees.com/uploads/2012/stycil_tux.svg</dc:source>
<dc:relation>http://twolofbees.com/artwork.php?iid=870</dc:relation>
</cc:Work>
<cc:License
rdf:about="http://creativecommons.org/publicdomain/zero/1.0/">
<cc:permits
rdf:resource="http://creativecommons.org/ns#Reproduction" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#Distribution" />
<cc:permits
rdf:resource="http://creativecommons.org/ns#DerivativeWorks" />
</cc:License>
</rdf:RDF>
</svg:metadata>
<svg:g
id="layer5"
style="display:inline">
<svg:path
style="color:#000000;display:inline;overflow:visible;visibility:visible;fill:#000000;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:15;marker:none;enable-background:accumulate"
d="M 388.45613,-1.532035e-6 C 312.47311,-1.532035e-6 267.8663,46.352999 259.46514,108.85526 c -8.40088,62.50226 5.12517,73.95546 -15.91489,137.95968 -21.04005,64.00309 -115.36955,173.72047 -113.16389,274.95172 0.68683,31.51688 4.31623,58.80618 10.63947,82.65262 7.75233,-12.84485 19.23844,-21.89739 27.60949,-25.76314 6.53512,-3.01686 9.69379,-4.4676 11.16704,-5.01177 0.21384,-1.61929 1.0422,-5.30581 2.54978,-12.5739 2.07089,-9.9819 10.00779,-25.61119 23.56479,-35.87475 -0.13787,-3.10943 -0.28756,-6.18678 -0.35171,-9.40819 -1.56583,-78.51788 79.58568,-163.58213 94.52309,-213.22632 14.93684,-49.6425 8.43914,-54.75472 10.90311,-67.08917 2.46368,-12.33444 11.97626,-26.70207 25.67507,-38.16089 1.30499,-1.09228 2.5751,-1.57061 3.86884,-1.58271 12.48892,-0.11817 24.98684,45.34822 49.15179,45.37102 24.16496,0.0281 36.73575,-55.42495 50.64672,-43.78831 13.69881,11.4591 23.21139,25.82645 25.67507,38.16089 2.46396,12.33445 -4.0343,17.44667 10.90311,67.08917 14.9374,49.64363 96.00084,134.70816 94.43502,213.22632 -0.0647,3.19131 -0.21666,6.23855 -0.35172,9.3204 13.61721,10.26187 21.57719,25.95644 23.65258,35.96254 1.50758,7.26809 2.33622,10.95461 2.55006,12.5739 1.46876,0.54332 4.64065,2.0782 11.16676,5.09984 8.37387,3.87729 19.79104,12.91294 27.5217,25.76314 6.34013,-23.87121 10.03959,-51.17823 10.72726,-82.74069 C 648.81934,420.53541 554.40205,310.81775 533.362,246.81494 512.32195,182.81072 525.93579,171.35752 517.5349,108.85526 509.13402,46.352999 464.43914,-1.532035e-6 388.45613,-1.532035e-6 Z M 239.15384,541.81431 c -3.26249,0.18852 -6.8677,1.0664 -10.90311,2.72564 -25.82645,10.62174 -14.48102,32.99858 -25.76314,47.12958 -11.28156,14.13184 -33.93443,7.32492 -41.06239,36.22647 -7.12768,28.90211 102.43804,170.80435 161.34833,146.57665 58.91057,-24.2277 37.00558,-202.18562 11.60654,-217.71052 -25.39848,-15.52463 -36.64346,5.27091 -54.60335,3.16542 -15.15349,-1.77658 -23.00486,-19.1318 -40.62288,-18.11324 z m 296.75794,0 c -16.29614,0.28137 -24.18409,16.4025 -38.77625,18.11324 -17.95988,2.10549 -29.20486,-18.69005 -54.60334,-3.16542 -25.39905,15.5249 -47.30403,193.48254 11.60653,217.71052 58.91029,24.2277 168.47601,-117.67454 161.34833,-146.57665 -7.12796,-28.90155 -29.69304,-22.09463 -40.9746,-36.22647 -11.28211,-14.131 0.0647,-36.50784 -25.76285,-47.12958 -4.84267,-1.99098 -9.07702,-2.79035 -12.83782,-2.72564 z M 385.29071,715.82432 c -1.28727,8.31675 -3.01545,16.47819 -5.2757,24.35629 -3.68399,12.84006 -9.06098,25.7077 -17.0581,36.66625 8.28806,0.51378 16.78292,0.58131 25.49922,0.17445 8.7163,0.40601 17.20834,0.3382 25.49921,-0.17445 -7.99712,-10.95855 -13.37411,-23.82619 -17.05809,-36.66625 -2.26025,-7.8781 -3.98843,-16.03954 -5.2757,-24.35629 -1.05486,0.0281 -2.10072,0.0872 -3.16542,0.0872 -1.06471,0 -2.11056,-0.0675 -3.16542,-0.0872 z"
id="path4372-7" />
</svg:g>
<script />
</svg:svg>

Before

Width:  |  Height:  |  Size: 6.7 KiB

View File

@@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="apple" class="svg-inline--fa fa-apple fa-w-12" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7C63.3 141.2 4 184.8 4 273.5q0 39.3 14.4 81.2c12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"></path></svg>

Before

Width:  |  Height:  |  Size: 666 B

View File

@@ -1 +1 @@
<svg fill="#000000" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30" width="30px" height="30px"><path d="M 13 3 C 7.4889971 3 3 7.4889971 3 13 C 3 18.511003 7.4889971 23 13 23 C 15.396508 23 17.597385 22.148986 19.322266 20.736328 L 25.292969 26.707031 A 1.0001 1.0001 0 1 0 26.707031 25.292969 L 20.736328 19.322266 C 22.148986 17.597385 23 15.396508 23 13 C 23 7.4889971 18.511003 3 13 3 z M 13 5 C 17.430123 5 21 8.5698774 21 13 C 21 17.430123 17.430123 21 13 21 C 8.5698774 21 5 17.430123 5 13 C 5 8.5698774 8.5698774 5 13 5 z"/></svg>
<svg height="30" viewBox="0 0 30 30" width="30" xmlns="http://www.w3.org/2000/svg"><path d="m13 3c-5.5110029 0-10 4.4889971-10 10 0 5.511003 4.4889971 10 10 10 2.396508 0 4.597385-.851014 6.322266-2.263672l5.970703 5.970703a1.0001 1.0001 0 1 0 1.414062-1.414062l-5.970703-5.970703c1.412658-1.724881 2.263672-3.925758 2.263672-6.322266 0-5.5110029-4.488997-10-10-10zm0 2c4.430123 0 8 3.5698774 8 8 0 4.430123-3.569877 8-8 8-4.4301226 0-8-3.569877-8-8 0-4.4301226 3.5698774-8 8-8z"/></svg>

Before

Width:  |  Height:  |  Size: 547 B

After

Width:  |  Height:  |  Size: 488 B

View File

@@ -1,114 +0,0 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg:svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
version="1.0"
width="764.98566pt"
height="764.98566pt"
viewBox="0 0 764.98566 764.98566"
preserveAspectRatio="xMidYMid meet"
id="svg40"
sodipodi:docname="Nintendo_Switch_Logo.svg"
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)">
<svg:defs
id="defs44" />
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="2560"
inkscape:window-height="1411"
id="namedview42"
showgrid="false"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0"
inkscape:zoom="0.59583333"
inkscape:cx="477.53797"
inkscape:cy="509.99044"
inkscape:window-x="2560"
inkscape:window-y="0"
inkscape:window-maximized="1"
inkscape:current-layer="svg40" />
<svg:metadata
id="metadata2">
Created by potrace 1.13, written by Peter Selinger 2001-2015
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</svg:metadata>
<svg:g
transform="matrix(0.1,0,0,-0.1,-49.853701,832.99999)"
fill="#000000"
stroke="none"
id="g38">
<svg:path
d="m 2965,8314 c -481,-86 -868,-442 -990,-910 -44,-169 -47,-268 -42,-1579 3,-1204 4,-1232 24,-1325 111,-501 467,-858 973,-976 66,-15 150,-18 691,-21 560,-4 618,-3 633,12 15,15 16,208 16,2396 0,1622 -3,2386 -10,2400 -10,18 -27,19 -613,18 -476,-1 -619,-4 -682,-15 z M 3870,5914 V 3888 l -407,5 c -375,4 -415,6 -490,25 -322,83 -561,331 -628,654 -22,101 -22,2589 -1,2688 60,281 255,514 518,619 132,53 193,59 621,60 l 387,1 z"
id="path4" />
<svg:path
d="m 3051,7329 c -63,-12 -159,-60 -210,-105 -105,-91 -157,-220 -149,-372 4,-79 9,-100 41,-164 47,-97 118,-168 215,-216 67,-33 84,-37 171,-40 79,-3 107,0 160,18 217,73 348,284 311,500 -43,257 -287,429 -539,379 z"
id="path6" />
<svg:path
d="m 4757,8323 c -4,-3 -7,-1087 -7,-2409 0,-2181 1,-2402 16,-2408 27,-10 803,-6 899,4 406,46 764,293 959,660 25,47 58,126 75,175 63,188 61,138 61,1575 0,1147 -2,1318 -16,1391 -99,521 -496,914 -1018,1004 -70,12 -178,15 -526,15 -240,0 -440,-3 -443,-7 z M 5825,6145 c 156,-41 284,-160 336,-312 33,-94 32,-232 -1,-318 -61,-158 -181,-269 -335,-310 -250,-65 -516,86 -589,334 -22,76 -21,204 4,282 75,245 335,389 585,324 z"
id="path8" />
<svg:path
d="m 7493,2776 c -155,-51 -247,-200 -221,-362 16,-104 76,-186 168,-233 125,-62 258,-46 358,44 75,68 107,139 107,240 0,95 -28,166 -91,229 -79,79 -221,115 -321,82 z m 177,-146 c 60,-31 93,-81 98,-149 6,-89 -32,-153 -111,-186 -134,-56 -286,73 -248,212 16,62 43,97 93,122 54,26 117,27 168,1 z"
id="path10" />
<svg:path
d="m 790,2465 v -306 l 63,3 62,3 5,193 5,193 145,-195 145,-196 60,2 60,3 v 300 300 l -62,3 -63,3 v -197 -198 l -147,197 -148,197 h -62 -63 z"
id="path12" />
<svg:path
d="m 1790,2465 v -305 h 65 65 v 305 305 h -65 -65 z"
id="path14" />
<svg:path
d="m 2375,2757 c -3,-7 -4,-143 -3,-302 l 3,-290 63,-3 62,-3 v 202 203 l 150,-202 150,-202 h 60 60 v 305 305 h -65 -65 l -2,-192 -3,-192 -144,192 -143,192 h -59 c -39,0 -61,-4 -64,-13 z"
id="path16" />
<svg:path
d="m 3347,2763 c -4,-3 -7,-33 -7,-65 v -58 h 100 100 v -240 -240 h 65 65 v 240 240 h 95 95 v 65 65 h -253 c -140,0 -257,-3 -260,-7 z"
id="path18" />
<svg:path
d="m 4300,2465 v -305 h 235 235 v 60 60 h -175 -175 v 70 70 h 160 160 v 55 55 h -160 -160 v 60 60 l 173,2 172,3 3,58 3,57 h -236 -235 z"
id="path20" />
<svg:path
d="m 5265,2757 c -3,-7 -4,-143 -3,-302 l 3,-290 63,-3 62,-3 v 203 202 l 150,-202 150,-202 h 60 60 v 305 305 h -65 -65 l -2,-192 -3,-192 -144,192 -143,192 h -59 c -39,0 -61,-4 -64,-13 z"
id="path22" />
<svg:path
d="m 6320,2466 v -306 h 133 c 154,0 227,15 293,61 195,134 165,421 -54,522 -41,19 -69,22 -209,25 l -163,4 z m 327,155 c 84,-39 120,-146 78,-235 -32,-66 -97,-96 -211,-96 h -74 v 175 175 h 83 c 59,0 94,-6 124,-19 z"
id="path24" />
<svg:path
d="m 6018,1889 c -139,-18 -263,-83 -365,-192 -223,-240 -216,-605 17,-837 86,-87 164,-132 276,-160 184,-47 370,-10 522,105 59,44 136,130 130,145 -2,4 -43,41 -92,84 l -88,77 -27,-35 c -129,-169 -390,-187 -541,-36 -22,22 -52,63 -67,92 -25,48 -28,63 -28,153 0,86 3,107 25,150 74,153 257,236 416,190 74,-21 144,-65 188,-118 l 34,-41 44,36 c 24,19 66,56 93,80 l 50,45 -39,48 c -130,158 -340,240 -548,214 z"
id="path26" />
<svg:path
d="m 1072,1850 c -238,-63 -361,-222 -308,-402 38,-133 164,-198 499,-258 225,-40 291,-73 291,-144 0,-49 -29,-85 -92,-114 -54,-25 -66,-27 -202,-27 -161,0 -224,13 -343,67 -37,17 -69,29 -71,27 -12,-15 -107,-192 -104,-194 10,-11 170,-69 236,-87 110,-29 345,-36 465,-14 224,42 335,145 345,318 8,143 -32,217 -155,281 -88,46 -164,68 -358,107 -169,33 -217,49 -252,82 -31,29 -31,81 1,113 72,72 330,75 530,5 33,-11 63,-17 67,-13 7,8 79,177 79,187 0,9 -153,54 -239,70 -116,22 -296,20 -389,-4 z"
id="path28" />
<svg:path
d="m 1924,1843 c 3,-10 73,-259 156,-553 83,-294 153,-543 156,-552 5,-16 21,-18 144,-18 h 139 l 11,38 c 99,358 199,694 204,682 3,-8 50,-172 104,-365 l 98,-350 140,-3 140,-3 159,558 c 87,307 160,564 163,571 3,9 -25,12 -122,12 h -125 l -14,-47 c -8,-27 -56,-207 -107,-400 -52,-194 -96,-353 -100,-353 -3,0 -50,152 -104,338 -54,185 -107,365 -118,400 l -19,63 -102,-3 -102,-3 -117,-400 c -64,-220 -117,-402 -118,-405 -1,-3 -46,159 -99,360 -54,201 -104,384 -110,408 l -12,42 h -125 c -115,0 -125,-1 -120,-17 z"
id="path30" />
<svg:path
d="M 3820,1290 V 720 h 130 130 l -2,568 -3,567 -127,3 -128,3 z"
id="path32" />
<svg:path
d="m 4350,1735 v -125 h 180 180 V 1165 720 h 125 125 v 445 445 l 178,2 177,3 v 120 120 l -482,3 -483,2 z"
id="path34" />
<svg:path
d="M 6860,1290 V 720 h 120 120 v 225 225 h 265 265 V 945 720 h 120 120 l -2,568 -3,567 -117,3 -118,3 v -226 -225 h -265 -265 v 225 225 h -120 -120 z"
id="path36" />
</svg:g>
<script />
</svg:svg>

Before

Width:  |  Height:  |  Size: 6.5 KiB

View File

@@ -1 +0,0 @@
<svg aria-hidden="true" focusable="false" data-prefix="fab" data-icon="windows" class="svg-inline--fa fa-windows fa-w-14" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M0 93.7l183.6-25.3v177.4H0V93.7zm0 324.6l183.6 25.3V268.4H0v149.9zm203.8 28L448 480V268.4H203.8v177.9zm0-380.6v180.1H448V32L203.8 65.7z"></path></svg>

Before

Width:  |  Height:  |  Size: 370 B

View File

@@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 576 512" xmlns="http://www.w3.org/2000/svg"><path d="m420.55 301.93c-13.166 0-24-10.834-24-24s10.834-24 24-24 24 10.834 24 24-10.834 24-24 24m-265.1 0c-13.166 0-24-10.834-24-24s10.834-24 24-24 24 10.834 24 24-10.834 24-24 24m273.7-144.48 47.94-83c1.106-1.648 1.696-3.588 1.696-5.572 0-5.486-4.514-10-10-10-3.799 0-7.284 2.165-8.966 5.572l-48.54 84.07c-78.383-35.155-168.177-35.155-246.56 0l-48.54-84.07c-1.682-3.407-5.167-5.572-8.966-5.572-5.486 0-10 4.514-10 10 0 1.984.59 3.924 1.696 5.572l47.94 83c-82.32 44.77-138.61 128.1-146.85 226.55h576c-8.24-98.45-64.54-181.78-146.85-226.55" fill-rule="nonzero"/></svg>

After

Width:  |  Height:  |  Size: 717 B

View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

View File

@@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 32 30" xmlns="http://www.w3.org/2000/svg"><path d="m128 1408h1024v-128h-1024zm0-512h1024v-128h-1024zm1568 448c0-52.66-43.34-96-96-96s-96 43.34-96 96 43.34 96 96 96 96-43.34 96-96zm-1568-960h1024v-128h-1024zm1568 448c0-52.664-43.34-96-96-96s-96 43.336-96 96 43.34 96 96 96 96-43.336 96-96zm0-512c0-52.664-43.34-96-96-96s-96 43.336-96 96 43.34 96 96 96 96-43.336 96-96zm96 832v384h-1792v-384zm0-512v384h-1792v-384zm0-512v384h-1792v-384z" fill-rule="nonzero" transform="scale(.0178571)"/></svg>

After

Width:  |  Height:  |  Size: 596 B

View File

@@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 777 778" xmlns="http://www.w3.org/2000/svg"><path d="m388.456 0c-75.983 0-120.59 46.353-128.991 108.855-8.401 62.503 5.125 73.956-15.915 137.96-21.04 64.003-115.369 173.72-113.164 274.952.687 31.517 4.317 58.806 10.64 82.652 7.752-12.845 19.238-21.897 27.609-25.763 6.535-3.017 9.694-4.467 11.167-5.012.214-1.619 1.043-5.305 2.55-12.574 2.071-9.981 10.008-25.611 23.565-35.874-.138-3.11-.288-6.187-.352-9.408-1.566-78.518 79.586-163.583 94.523-213.227 14.937-49.642 8.439-54.755 10.903-67.089s11.977-26.702 25.675-38.161c1.305-1.092 2.576-1.57 3.869-1.583 12.489-.118 24.987 45.349 49.152 45.371 24.165.029 36.736-55.424 50.647-43.788 13.699 11.459 23.211 25.827 25.675 38.161s-4.034 17.447 10.903 67.089c14.937 49.644 96.001 134.708 94.435 213.227-.065 3.191-.217 6.238-.352 9.32 13.618 10.262 21.578 25.956 23.653 35.962 1.507 7.269 2.336 10.955 2.55 12.574 1.469.544 4.641 2.079 11.167 5.1 8.374 3.878 19.791 12.913 27.521 25.763 6.341-23.871 10.04-51.178 10.728-82.74 2.205-101.232-92.212-210.949-113.252-274.952-21.04-64.004-7.426-75.457-15.827-137.96-8.401-62.502-53.096-108.855-129.079-108.855zm-149.302 541.814c-3.263.189-6.868 1.067-10.903 2.726-25.827 10.622-14.481 32.999-25.763 47.13s-33.935 7.324-41.063 36.226c-7.127 28.902 102.438 170.804 161.349 146.577 58.91-24.228 37.005-202.186 11.606-217.711-25.398-15.524-36.643 5.271-54.603 3.166-15.154-1.777-23.005-19.132-40.623-18.114zm296.758 0c-16.296.282-24.184 16.403-38.776 18.114-17.96 2.105-29.205-18.69-54.604-3.166-25.399 15.525-47.304 193.483 11.607 217.711 58.91 24.227 168.476-117.675 161.348-146.577s-29.693-22.095-40.975-36.226.065-36.508-25.762-47.13c-4.843-1.991-9.077-2.79-12.838-2.726zm-150.621 174.01c-1.288 8.317-3.016 16.479-5.276 24.357-3.684 12.84-9.061 25.707-17.058 36.666 8.288.514 16.783.581 25.499.174 8.716.406 17.208.339 25.499-.174-7.997-10.959-13.374-23.826-17.058-36.666-2.26-7.878-3.988-16.04-5.275-24.357-1.055.028-2.101.088-3.166.088s-2.11-.068-3.165-.088z" fill-rule="nonzero"/></svg>

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 384 512" xmlns="http://www.w3.org/2000/svg"><path d="m318.7 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7-55.8.9-115.1 44.5-115.1 133.2 0 26.2 4.8 53.267 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zm-56.6-164.2c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z" fill-rule="nonzero"/></svg>

After

Width:  |  Height:  |  Size: 636 B

View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

View File

@@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 765 765" xmlns="http://www.w3.org/2000/svg"><g fill-rule="nonzero" transform="matrix(.1 0 0 -.1 -49.8537 833)"><path d="m2965 8314c-481-86-868-442-990-910-44-169-47-268-42-1579 3-1204 4-1232 24-1325 111-501 467-858 973-976 66-15 150-18 691-21 560-4 618-3 633 12s16 208 16 2396c0 1622-3 2386-10 2400-10 18-27 19-613 18-476-1-619-4-682-15zm905-374v-4052l-407 5c-375 4-415 6-490 25-322 83-561 331-628 654-22 101-22 2589-1 2688 60 281 255 514 518 619 132 53 193 59 621 60z"/><path d="m3051 7329c-63-12-159-60-210-105-105-91-157-220-149-372 4-79 9-100 41-164 47-97 118-168 215-216 67-33 84-37 171-40 79-3 107 0 160 18 217 73 348 284 311 500-43 257-287 429-539 379z"/><path d="m4757 8323c-4-3-7-1087-7-2409 0-2181 1-2402 16-2408 27-10 803-6 899 4 406 46 764 293 959 660 25 47 58 126 75 175 63 188 61 138 61 1575 0 1147-2 1318-16 1391-99 521-496 914-1018 1004-70 12-178 15-526 15-240 0-440-3-443-7zm1068-2178c156-41 284-160 336-312 33-94 32-232-1-318-61-158-181-269-335-310-250-65-516 86-589 334-22 76-21 204 4 282 75 245 335 389 585 324z"/><path d="m7493 2776c-155-51-247-200-221-362 16-104 76-186 168-233 125-62 258-46 358 44 75 68 107 139 107 240 0 95-28 166-91 229-79 79-221 115-321 82zm177-146c60-31 93-81 98-149 6-89-32-153-111-186-134-56-286 73-248 212 16 62 43 97 93 122 54 26 117 27 168 1z"/><path d="m790 2770v-611l63 3 62 3 10 386 145-195 145-196 60 2 60 3v600l-62 3-63 3v-395l-147 197-148 197z"/><path d="m1790 2770v-610h130v610z"/><path d="m2375 2757c-3-7-4-143-3-302l3-290 63-3 62-3v405l300-404h120v610h-130l-2-192-3-192-144 192-143 192h-59c-39 0-61-4-64-13z"/><path d="m3347 2763c-4-3-7-33-7-65v-58h200v-480h130v480h190v130h-253c-140 0-257-3-260-7z"/><path d="m4300 2770v-610h470v120h-350v140h320v110h-320v120l173 2 172 3 3 58 3 57z"/><path d="m5265 2757c-3-7-4-143-3-302l3-290 63-3 62-3v405l300-404h120v610h-130l-2-192-3-192-144 192-143 192h-59c-39 0-61-4-64-13z"/><path d="m6320 2772v-612h133c154 0 227 15 293 61 195 134 165 421-54 522-41 19-69 22-209 25zm327-151c84-39 120-146 78-235-32-66-97-96-211-96h-74v350h83c59 0 94-6 124-19z"/><path d="m6018 1889c-139-18-263-83-365-192-223-240-216-605 17-837 86-87 164-132 276-160 184-47 370-10 522 105 59 44 136 130 130 145-2 4-43 41-92 84l-88 77-27-35c-129-169-390-187-541-36-22 22-52 63-67 92-25 48-28 63-28 153 0 86 3 107 25 150 74 153 257 236 416 190 74-21 144-65 188-118l34-41 44 36c24 19 66 56 93 80l50 45-39 48c-130 158-340 240-548 214z"/><path d="m1072 1850c-238-63-361-222-308-402 38-133 164-198 499-258 225-40 291-73 291-144 0-49-29-85-92-114-54-25-66-27-202-27-161 0-224 13-343 67-37 17-69 29-71 27-12-15-107-192-104-194 10-11 170-69 236-87 110-29 345-36 465-14 224 42 335 145 345 318 8 143-32 217-155 281-88 46-164 68-358 107-169 33-217 49-252 82-31 29-31 81 1 113 72 72 330 75 530 5 33-11 63-17 67-13 7 8 79 177 79 187 0 9-153 54-239 70-116 22-296 20-389-4z"/><path d="m1924 1843c3-10 73-259 156-553s153-543 156-552c5-16 21-18 144-18h139l11 38c99 358 199 694 204 682 3-8 50-172 104-365l98-350 280-6 159 558c87 307 160 564 163 571 3 9-25 12-122 12h-125l-14-47c-8-27-56-207-107-400-52-194-96-353-100-353-3 0-50 152-104 338-54 185-107 365-118 400l-19 63-204-6-117-400c-64-220-117-402-118-405s-46 159-99 360c-54 201-104 384-110 408l-12 42h-125c-115 0-125-1-120-17z"/><path d="m3820 1861v-1141h260l-2 568-3 567-127 3z"/><path d="m4350 1860v-250h360v-890h250v890l178 2 177 3v240l-482 3z"/><path d="m6860 1860v-1140h240v450h530v-450h240l-2 568-3 567-117 3-118 3v-451h-530v450z"/></g></svg>

After

Width:  |  Height:  |  Size: 3.5 KiB

View File

@@ -0,0 +1 @@
<svg height="1024" viewBox="0 0 1024 1024" width="1024" xmlns="http://www.w3.org/2000/svg"><path d="m417.61523 76.875c-42.39203 9.424151-84.32671 22.54494-123.64257 42.33398.89912 34.71618 3.14362 67.97967 7.69336 101.76758-15.26846 9.78214-31.31507 18.17757-45.57618 29.62891-14.49005 11.14747-29.2896 21.81231-42.41015 34.84961-26.21196-17.33728-53.95467-33.6299-82.53516-48.01172-30.80748 33.1552-59.61329 68.94006-83.14453 108.98437 18.493057 29.02877 38.32949 58.20569 56.69922 80.95899v197.7832 25.1211 22.86132c.44956.00417.89835.02088 1.34375.0625l150.66992 14.52735c7.89231.76176 14.07749 7.11448 14.62695 15.02343l4.64649 66.50977 131.42969 9.37891 9.05468-61.38672c1.17386-7.95891 8.00029-13.85742 16.05078-13.85742h158.96094c8.04633 0 14.87302 5.89851 16.04688 13.85742l9.05468 61.38672 131.4336-9.37891 4.64258-66.50977c.55362-7.90895 6.73464-14.25751 14.62695-15.02343l150.61133-14.52735c.4454-.04162.89028-.05833 1.33984-.0625v-19.61132l.0625-.01954v-226.13476c21.2165-26.70928 41.30684-56.1715 56.69922-80.95899-23.52291-40.04431-52.34486-75.82917-83.15234-108.98437-28.57217 14.38182-56.32515 30.67444-82.53711 48.01172-13.11639-13.0373-27.88953-23.70214-42.40039-34.84961-14.25695-11.45134-30.32318-19.84677-45.5625-29.62891 4.53724-33.78791 6.7803-67.0514 7.68359-101.76758-39.32002-19.78904-81.24927-32.909829-123.66211-42.33398-16.9335 28.45977-32.41939 59.27922-45.90625 89.4082-15.99275-2.67239-32.05995-3.66203-48.14844-3.85351v-.02539c-.11239 0-.21676.02539-.3125.02539-.0999 0-.20478-.02539-.30468-.02539v.02539c-16.11763.19148-32.17106 1.18112-48.16797 3.85351-13.47854-30.12898-28.95559-60.94843-45.91407-89.4082zm-119.19921 359.52344c50.15113 0 90.79882 40.61746 90.79882 90.75195 0 50.16779-40.64769 90.80859-90.79882 90.80859-50.12617 0-90.78711-40.6408-90.78711-90.80859 0-50.13449 40.66094-90.75195 90.78711-90.75195zm427.17773 0c50.122 0 90.7793 40.61746 90.7793 90.75195 0 50.16779-40.6573 90.80859-90.7793 90.80859-50.15946 0-90.80664-40.6408-90.80664-90.80859 0-50.13449 40.64718-90.75195 90.80664-90.75195zm-213.59961 53.10937c16.14261 0 29.25391 11.90816 29.25391 26.56055v83.58984c0 14.66488-13.1113 26.5625-29.25391 26.5625-16.1426 0-29.22656-11.89762-29.22656-26.5625v-83.58984c0-14.65239 13.08396-26.56055 29.22656-26.56055z" stroke-width="4.16261"/><path d="m0 0-1.121-16.063c-.135-1.936-1.675-3.477-3.611-3.616l-38.555-2.751c-.094-.007-.188-.01-.281-.01-1.916 0-3.569 1.406-3.852 3.33l-2.211 14.994h-31.459l-2.211-14.994c-.297-2.018-2.101-3.469-4.133-3.32l-38.555 2.751c-1.936.139-3.476 1.68-3.611 3.616l-1.121 16.063-32.547 3.138c.015-3.498.06-7.33.06-8.093 0-34.374 43.605-50.896 97.781-51.086h.066.067c54.176.19 97.766 16.712 97.766 51.086 0 .777.047 4.593.063 8.093z" fill="#010102" transform="matrix(4.162611 0 0 -4.162611 784.07144 718.723121)"/><path d="m0 0c0-7.994-6.479-14.473-14.479-14.473-7.996 0-14.479 6.479-14.479 14.473s6.483 14.479 14.479 14.479c8 0 14.479-6.485 14.479-14.479" transform="matrix(4.162611 0 0 -4.162611 367.36686 532.537071)"/><path d="m0 0c0-7.994 6.477-14.473 14.471-14.473 8.002 0 14.479 6.479 14.479 14.473s-6.477 14.479-14.479 14.479c-7.994 0-14.471-6.485-14.471-14.479" transform="matrix(4.162611 0 0 -4.162611 656.64056 532.537071)"/></svg>

After

Width:  |  Height:  |  Size: 3.2 KiB

View File

Before

Width:  |  Height:  |  Size: 430 B

After

Width:  |  Height:  |  Size: 430 B

View File

@@ -0,0 +1 @@
<svg clip-rule="evenodd" fill-rule="evenodd" stroke-linejoin="round" stroke-miterlimit="2" viewBox="0 0 448 512" xmlns="http://www.w3.org/2000/svg"><path d="m0 93.7 183.6-25.3v177.4h-183.6zm0 324.6 183.6 25.3v-175.2h-183.6zm203.8 28 244.2 33.7v-211.6h-244.2zm0-380.6v180.1h244.2v-213.8z" fill-rule="nonzero"/></svg>

After

Width:  |  Height:  |  Size: 316 B

View File

Before

Width:  |  Height:  |  Size: 2.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

View File

@@ -4,23 +4,14 @@ description: Download the latest stable version of the Godot Engine for Android
platform: Android
downloads:
- caption: Universal - Play Store (ARM64 + ARMv7 + x86_64 + x86)
- platform: "android.playstore"
custom: https://play.google.com/store/apps/details?id=org.godotengine.editor.v4
featured: true
featured_flavor: Play Store
tags:
- Play Store
- ARM64/v7
- x86 (64 & 32 bit)
- caption: Universal - APK (ARM64 + ARMv7 + x86_64 + x86)
slug: android_editor.apk
- platform: "android.apk"
featured: true
featured_flavor: APK
tags:
- APK download
- ARM64/v7
- x86 (64 & 32 bit)
ignore_export: true
ignore_mono: true

View File

@@ -4,32 +4,18 @@ description: Download the latest stable version of the Godot Engine for Linux
platform: Linux
downloads:
- caption: Standard (x86_64)
slug: linux.x86_64.zip
- platform: "linux.64"
featured: true
tags:
- 64 bit
- caption: Standard (x86)
slug: linux.x86_32.zip
tags:
- 32 bit
- caption: .NET (x86_64)
slug: mono_linux_x86_64.zip
- platform: "linux.32"
- platform: "linux.64"
mono: true
featured: true
featured_flavor: .NET
tags:
- 64 bit
- C# support
- caption: .NET (x86)
slug: mono_linux_x86_32.zip
- platform: "linux.32"
mono: true
tags:
- 32 bit
- C# support
content_instructions: |
<ul>

View File

@@ -4,23 +4,14 @@ description: Download the latest stable version of the Godot Engine for macOS
platform: macOS
downloads:
- caption: Universal (x86_64 + Apple Silicon)
slug: macos.universal.zip
- platform: "macos.universal"
featured: true
tags:
- Intel/Apple Silicon
- 64 bit
- caption: .NET Universal (x86_64 + Apple Silicon)
slug: mono_macos.universal.zip
- platform: "macos.universal"
mono: true
featured: true
featured_flavor: .NET
tags:
- Intel/Apple Silicon
- 64 bit
- C# support
redirect_from:
- /download/osx

View File

@@ -4,32 +4,20 @@ description: Download the latest stable version of the Godot Engine for Windows
platform: Windows
downloads:
- caption: Standard (x86_64)
slug: win64.exe.zip
- platform: "windows.64"
featured: true
tags:
- 64 bit
- caption: Standard (x86)
slug: win32.exe.zip
tags:
- 32 bit
- caption: .NET (x86_64)
slug: mono_win64.zip
- platform: "windows.32"
- platform: "windows.64"
mono: true
featured: true
featured_flavor: .NET
tags:
- 64 bit
- C# support
- caption: .NET (x86)
slug: mono_win32.zip
- platform: "windows.32"
mono: true
tags:
- 32 bit
- C# support
content_note: |
<p>

View File

@@ -4,23 +4,14 @@ description: Download the latest stable version of the Godot Engine 3 for Androi
platform: Android
downloads:
- caption: Universal - Play Store (ARM64 + ARMv7 + x86_64 + x86)
- platform: "android.playstore"
custom: https://play.google.com/store/apps/details?id=org.godotengine.editor.v3
featured: true
featured_flavor: Play Store
tags:
- Play Store
- ARM64/v7
- x86 (64 & 32 bit)
- caption: Universal - APK (ARM64 + ARMv7 + x86_64 + x86)
slug: android_editor.apk
- platform: "android.apk"
featured: true
featured_flavor: APK
tags:
- APK download
- ARM64/v7
- x86 (64 & 32 bit)
ignore_export: true
ignore_mono: true

View File

@@ -4,32 +4,18 @@ description: Download the latest stable version of the Godot Engine 3 for Linux
platform: Linux
downloads:
- caption: Standard (x86_64)
slug: x11.64.zip
- platform: "linux.64"
featured: true
tags:
- 64 bit
- caption: Standard (x86)
slug: x11.32.zip
tags:
- 32 bit
- caption: .NET (x86_64)
slug: mono_x11_64.zip
- platform: "linux.32"
- platform: "linux.64"
mono: true
featured: true
featured_flavor: .NET
tags:
- 64 bit
- C# support
- caption: .NET (x86)
slug: mono_x11_32.zip
- platform: "linux.32"
mono: true
tags:
- 32 bit
- C# support
content_instructions: |
<ul>

View File

@@ -4,22 +4,13 @@ description: Download the latest stable version of the Godot Engine 3 for macOS
platform: macOS
downloads:
- caption: Universal (x86_64 + Apple Silicon)
slug: osx.universal.zip
- platform: "macos.universal"
featured: true
tags:
- Intel/Apple Silicon
- 64 bit
- caption: .NET Universal (x86_64 + Apple Silicon)
slug: mono_osx.universal.zip
- platform: "macos.universal"
mono: true
featured: true
featured_flavor: .NET
tags:
- Intel/Apple Silicon
- 64 bit
- C# support
content_instructions: |
<ul>

View File

@@ -4,34 +4,18 @@ description: Download the latest stable version of the Godot Engine 3 for Linux
platform: Linux Server
downloads:
- caption: Standard (x86_64)
slug: linux_server.64.zip
- platform: "linux_server.64"
featured: true
tags:
- 64 bit
- caption: Headless (x86_64)
slug: linux_headless.64.zip
tags:
- 64 bit
- headless
- platform: "linux_server.headless.64"
- caption: .NET Standard (x86_64)
slug: mono_linux_server_64.zip
- platform: "linux_server.64"
mono: true
featured: true
featured_flavor: .NET
tags:
- 64 bit
- C# support
- caption: .NET Headless (x86_64)
slug: mono_linux_headless_64.zip
- platform: "linux_server.headless.64"
mono: true
tags:
- 64 bit
- headless
- C# support
content_instructions: |
<ul>

View File

@@ -4,32 +4,20 @@ description: Download the latest stable version of the Godot Engine 3 for Window
platform: Windows
downloads:
- caption: Standard (x86_64)
slug: win64.exe.zip
- platform: "windows.64"
featured: true
tags:
- 64 bit
- caption: Standard (x86)
slug: win32.exe.zip
tags:
- 32 bit
- caption: .NET (x86_64)
slug: mono_win64.zip
- platform: "windows.32"
- platform: "windows.64"
mono: true
featured: true
featured_flavor: .NET
tags:
- 64 bit
- C# support
- caption: .NET (x86)
slug: mono_win32.zip
- platform: "windows.32"
mono: true
tags:
- 32 bit
- C# support
content_note: |
<p>

454
pages/download/preview.html Normal file
View File

@@ -0,0 +1,454 @@
---
permalink: /download/preview/index.html
title: "Download Godot preview builds - Godot Engine"
description: "Download the latest preview version of the Godot Engine 3 and Godot Engine 4 for Linux, macOS, Windows, or Android"
layout: default
---
{% include header.html %}
<link rel="stylesheet" href="/assets/css/transparent-nav.css">
<link rel="stylesheet" href="/assets/css/download.css">
<style>
.hero {
background-image: url('/assets/download/download-background-preview.jpg');
}
.hero-blurb {
color: var(--download-hero-color);
}
.preview-cards {
display: grid;
grid-template-columns: 1fr;
gap: 16px;
}
.preview-download {
border-radius: 12px;
}
.preview-download h3 {
margin-bottom: 4px;
}
.preview-download-meta {
color: var(--secondary-color-text);
font-size: 17px;
margin: 0;
}
.preview-download-primary {
display: grid;
grid-template-columns: 3fr 2fr;
gap: 60px;
margin-top: 20px;
}
@media (max-width: 900px) {
.preview-download-primary {
grid-template-columns: 1fr;
gap: 36px;
}
}
.preview-notes {
display: flex;
flex-direction: column;
align-items: flex-start;
gap: 16px;
}
.notes-summary {
display: grid;
gap: 24px;
width: 100%;
}
.notes-thumbnail {
background-position: center;
background-size: cover;
background-color: var(--card-background-color);
border-radius: 7px;
box-shadow: 0 5px 10px -3px #00000078;
aspect-ratio: 16 / 9;
max-height: 260px;
}
.notes-excerpt {
color: var(--base-color-text);
opacity: 0.8;
}
.notes-buttons {
display: flex;
align-items: center;
gap: 42px;
min-height: 54px;
}
@media (max-width: 768px) {
.notes-buttons {
flex-direction: column;
gap: 36px;
width: 100%;
}
}
.btn.btn-release-notes {
background-color: var(--button-card-background-color);
color: var(--base-color-text);
}
.btn.btn-release-changelog {
background: transparent;
box-shadow: none;
color: var(--link-color);
padding: 2px 4px;
}
.download-primaries {
display: grid;
grid-template-columns: 2fr 1fr;
gap: 8px;
}
.download-primaries .btn-download-primary {
margin-bottom: 0;
text-align: left;
}
.download-primaries .btn-download-primary:nth-child(2n) {
background-color: rgb(132 151 174 / 68%);
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
}
.download-primaries .btn-download-primary:nth-child(2n) .download-title {
color: #f7f7f7;
}
.download-primaries .btn-download-primary:nth-child(2n) .download-hint {
background-color: var(--primary-color-subdued);
color: var(--text-color);
}
.download-primaries .btn.btn-download-primary .download-title {
font-size: 18px;
line-height: 24px;
white-space: nowrap;
}
@media (max-width: 900px) {
.download-primaries .btn.btn-download-primary .download-title {
line-height: 28px;
}
}
.preview-download-toggle {
display: flex;
justify-content: flex-end;
}
@media (max-width: 900px) {
.preview-download-toggle {
justify-content: flex-start;
}
}
.preview-download-toggle h4 {
color: var(--link-color);
cursor: pointer;
margin-top: 32px;
text-align: right;
/* Prevent color transitions from being too fast (for epilepsy). */
transition: 0.1s filter;
filter: brightness(100%);
}
.preview-download-toggle h4:hover {
filter: brightness(117.5%);
}
.preview-download-toggle h4:active {
filter: brightness(82.5%);
}
@media (max-width: 900px) {
.preview-download-toggle h4 {
text-align: left;
}
}
.preview-download-links {
background-color: var(--download-table-color);
border-left: 6px solid var(--accent-color);
padding: 4px 16px;
display: none;
}
.preview-download-toggle.active + .preview-download-links {
display: block;
}
.preview-download-links .download {
display: grid;
grid-template-columns: 1fr 1fr;
align-items: flex-end;
gap: 6px;
border-bottom: 1px dashed var(--table-divider-color);
margin-bottom: 8px;
padding: 2px 0;
}
@media (max-width: 900px) {
.preview-download-links .download {
grid-template-columns: 1fr;
}
}
.preview-download-links .download-details {
color: var(--secondary-color-text);
font-size: 14px;
padding: 0 12px;
}
.stable-download {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 16px;
background-color: var(--dark-color);
padding: 24px;
padding-bottom: 60px;
width: auto;
max-width: 100%;
}
@media (max-width: 900px) {
.stable-download {
padding: 20px;
}
}
.stable-download h2 {
color: var(--dark-color-text-title);
font-weight: 600;
margin: 0;
margin-bottom: 16px;
}
.stable-download p {
color: var(--dark-color-text);
margin: 0;
}
.stable-download-ready {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
gap: 26px;
}
.stable-download-ready .btn-download {
min-width: 310px;
}
.stable-download-ready .btn-download:nth-of-type(2n) {
background-color: rgb(132 151 174 / 68%);
-webkit-backdrop-filter: blur(4px);
backdrop-filter: blur(4px);
}
.stable-download-ready .btn-download:nth-of-type(2n) .download-title {
color: #f7f7f7;
}
.stable-download-ready .btn-download:nth-of-type(2n) .download-hint {
background-color: var(--primary-color-subdued);
}
footer {
margin-top: 0;
}
</style>
<div class="hero">
<div class="hero-wrapper">
<h1>Download Godot preview builds</h1>
<div class="hero-blurb">
<p>
Help test the upcoming release of the engine,
<br />
and be the first to benefit from new features.
</p>
</div>
</div>
<div class="other-platforms">
<div class="other-platforms-wrapper">
Looking for the stable version? <a href="#stable">See below!</a>
</div>
</div>
</div>
<div class="container">
<div class="padded" style="padding-top:0;margin-top:32px">
<h2>Lastest preview builds</h2>
{% assign stable_versions = site.data.versions | where: "flavor", "stable" %}
<div class="preview-cards">
{% for version in site.data.versions %}
{% unless stable_versions contains version %}
<div class="card base-padding preview-download">
<h3 id="{{ version.name }}-{{ version.flavor }}">
Godot {{ version.name }}-{{ version.flavor }}
</h3>
<p class="preview-download-meta">
{% unless version.release_date == empty %}
<span>{{ version.release_date }}</span>
{% endunless %}
</p>
<div class="preview-download-primary">
<div class="preview-notes">
{% unless version.release_notes == empty %}
{% assign release_article = site.article | find: "url", version.release_notes %}
{% unless release_article == empty %}
<div class="notes-summary">
<div class="notes-thumbnail" style="background-image: url('{{ release_article.image }}');"></div>
<div class="notes-excerpt">
{{ release_article.excerpt }}
</div>
</div>
{% endunless %}
{% else %}
<div class="notes-excerpt">
Release notes are not ready yet. You can check the complete list of changes using our interactive changelog.
</div>
{% endunless %}
<div class="notes-buttons">
{% unless version.release_notes == empty %}
{% assign release_article = site.article | find: "url", version.release_notes %}
{% unless release_article == empty %}
<a class="btn btn-release-notes" href="{{ release_article.url }}">Read more</a>
{% endunless %}
{% endunless %}
<a class="btn btn-release-changelog" href="https://godotengine.github.io/godot-interactive-changelog/#{{ version.name }}-{{ version.flavor }}">View complete changelog</a>
</div>
</div>
<div>
<h4>Main downloads</h4>
<div class="download-primaries">
{% assign download_primary = version | get_download_primary: false %}
{% for primary in download_primary %}
{% comment %}
When iterating over a hash, you get an array. 0-th item is the key, and
1-st item is the value.
{% endcomment %}
{% assign platform_info = site.data.download_platforms | find: "name", primary[1] %}
<a href="{{ version | make_download: primary[1], false, "tuxfamily" }}" class="btn btn-download btn-download-primary">
<div class="download-title">
<img width="24" height="24" src="/assets/images/platforms/{{ primary[0] | split: "_" | join: "-" }}.svg" title="{{ platform_info.title }}" alt="{{ platform_info.title }}" />
{{ platform_info.title }}
</div>
</a>
{% assign mono_download = version | make_download: primary[1], true, "tuxfamily" %}
{% if mono_download == "#" %}
<div></div>
{% else %}
<a href="{{ mono_download }}" class="btn btn-download btn-download-primary">
<div class="download-title">
.NET
</div>
</a>
{% endif %}
{% endfor %}
</div>
</div>
</div>
<div class="preview-download-toggle">
<h4>Show all downloads</h4>
</div>
<div class="preview-download-links">
{% assign download_platforms = version | get_download_platforms: false %}
{% for platform in download_platforms %}
{% assign platform_info = site.data.download_platforms | find: "name", platform %}
<div class="download">
<span>
<a href="{{ version | make_download: platform, false, "tuxfamily" }}">
{{ platform_info.title }}
{% unless platform_info.caption == empty %} - {{ platform_info.caption }}{% endunless %}
</a>
</span>
<span class="download-details">
{% for tag in platform_info.tags %}{% if forloop.index > 1 %} · {% endif %}{{ tag }}{% endfor %}
</span>
</div>
{% assign mono_download = version | make_download: platform, true, "tuxfamily" %}
{% unless mono_download == "#" %}
<div class="download">
<a href="{{ mono_download }}">
{{ platform_info.title }} - .NET
{% unless platform_info.caption == empty %} - {{ platform_info.caption }}{% endunless %}
</a>
<span class="download-details">
{% for tag in platform_info.tags %}{{ tag }} · {% endfor %}C# support
</span>
</div>
{% endunless %}
{% endfor %}
</div>
</div>
{% endunless %}
{% endfor %}
</div>
</div>
</div>
<script>
document.addEventListener('DOMContentLoaded', () => {
const downloadToggles = document.querySelectorAll('.preview-download-toggle');
downloadToggles.forEach((item) => {
const toggleLink = item.querySelector('h4');
toggleLink.addEventListener('click', (e) => {
if (item.classList.contains('active')) {
item.classList.remove('active');
toggleLink.textContent = 'Show all downloads';
} else {
item.classList.add('active');
toggleLink.textContent = 'Hide all downloads';
}
});
});
});
</script>
<div id="stable" class="container card stable-download">
<h2>Need a stable version?</h2>
<div class="stable-download-ready">
{% assign stable_version_3 = site.data.versions | find: "featured", "3" %}
{% assign stable_version_4 = site.data.versions | find: "featured", "4" %}
<p>Download the <strong>latest version of Godot 4</strong> right now and begin your creative journey!</p>
<a href="/download/windows" class="btn btn-download set-os-download-url" data-version="4"
title="Download the latest version of Godot 4">
<div class="download-title">Download Latest</div>
<div class="download-hint">{{ stable_version_4.name }}</div>
</a>
<p>Want to stick to the <strong>true and trusted Godot 3</strong>? Download the long-term support version!</p>
<a href="/download/windows" class="btn btn-download set-os-download-url" data-version="3"
title="Download the long-term support version of Godot 3">
<div class="download-title">Download LTS</div>
<div class="download-hint">{{ stable_version_3.name }}</div>
</a>
</div>
</div>
{% include footer.html %}

View File

@@ -68,7 +68,7 @@ layout: default
font-size: 22px;
margin-bottom: 4px;
}
.feature-container.feature-container-2x {
grid-template-columns: 1fr 1fr;
}
@@ -83,7 +83,7 @@ layout: default
grid-column: span 1;
}
}
.feature-container.feature-container-3x {
grid-template-columns: 1fr 1fr 1fr;
}
@@ -175,6 +175,7 @@ layout: default
gap: 16px;
background-color: var(--dark-color);
padding: 24px;
padding-bottom: 60px;
width: auto;
max-width: 100%;
}
@@ -259,7 +260,7 @@ layout: default
width: 20px;
height: 36px;
transform: translateY(-50%);
background-image: url('/assets/arrow-flip.svg');
background-image: url('/assets/icons/arrow-flip.svg');
background-size: cover;
background-repeat: no-repeat;
cursor: pointer;
@@ -301,7 +302,7 @@ layout: default
position: absolute;
bottom: 12px;
right: 16px;
background: #1a1a1a7a;
background: var(--hero-text-background-color);
border-radius: 8px;
padding: 2px 10px;
}
@@ -320,6 +321,10 @@ layout: default
.showcase-credits a {
text-decoration: none;
}
footer {
margin-top: 0;
}
</style>
<div class="features-why">
@@ -677,8 +682,8 @@ layout: default
<h2>Ready to start?</h2>
<div class="features-download-ready">
{% assign stable_version_3 = site.data.versions.godot_3 | find: "flavor", "stable" %}
{% assign stable_version_4 = site.data.versions.godot_4 | find: "flavor", "stable" %}
{% assign stable_version_3 = site.data.versions | find: "featured", "3" %}
{% assign stable_version_4 = site.data.versions | find: "featured", "4" %}
<p>Download the <strong>latest version of Godot 4</strong> right now and begin your creative journey!</p>
<a href="/download/windows" class="btn btn-download set-os-download-url" data-version="4"

View File

@@ -220,8 +220,8 @@ layout: default
3D games.</p>
<div class="main-download">
{% assign stable_version_3 = site.data.versions.godot_3 | find: "flavor", "stable" %}
{% assign stable_version_4 = site.data.versions.godot_4 | find: "flavor", "stable" %}
{% assign stable_version_3 = site.data.versions | find: "featured", "3" %}
{% assign stable_version_4 = site.data.versions | find: "featured", "4" %}
<div class="main-download-links">
<a href="/download/windows" class="btn btn-download set-os-download-url" data-version="4"
@@ -254,7 +254,7 @@ layout: default
{% for post in latest_posts limit:1 %}
<a href="{{ post.url }}" style="text-decoration: none">
<article class="article-card">
<div class="thumbnail" style="background-image: url('{{ post.image }}');" href="{{ post.url }}"></div>
<div class="thumbnail" style="background-image: url('{{ post.image }}');"></div>
<div class="content">
<h3>{{ post.title }}</h3>
<p class="excerpt">{{ post.excerpt }}</p>

View File

@@ -110,45 +110,45 @@ layout: default
<div class="showcase-card-caption">
<div class="showcase-card-icons">
{% if project.windows %}
<img src="/assets/icons/windows.svg" alt="Windows" title="Windows" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/windows.svg" alt="Windows" title="Windows" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.macos %}
<img src="/assets/icons/macos.svg" alt="Mac" title="Mac" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/macos.svg" alt="Mac" title="Mac" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if project.linux %}
<img src="/assets/icons/linux.svg" alt="Linux" title="Linux" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/linux.svg" alt="Linux" title="Linux" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.switch %}
<img src="/assets/icons/switch.svg" alt="Nintendo Switch" title="Switch" style="margin: 0 0.125rem"
<img src="/assets/images/platforms/switch.svg" alt="Nintendo Switch" title="Switch" style="margin: 0 0.125rem"
width="24" height="24">
{% endif %}
{% if project.html5 %}
<img src="/assets/icons/html5.svg" alt="HTML5" title="HTML5" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/web.svg" alt="HTML5" title="HTML5" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.android %}
<img src="/assets/icons/android.svg" alt="Android" title="Android" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/android.svg" alt="Android" title="Android" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.ios %}
<img src="/assets/icons/ios.svg" alt="iOS" title="iOS" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/ios.svg" alt="iOS" title="iOS" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if project.playstation %}
<img src="/assets/icons/playstation.svg" alt="PlayStation" title="PlayStation" style="margin: 0 0.125rem"
<img src="/assets/images/platforms/playstation.svg" alt="PlayStation" title="PlayStation" style="margin: 0 0.125rem"
width="24" height="24">
{% endif %}
{% if project.xbox %}
<img src="/assets/icons/xbox.svg" alt="Xbox" title="Xbox" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/xbox.svg" alt="Xbox" title="Xbox" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
</div>
<div class="showcase-card-authors">
@@ -179,45 +179,45 @@ layout: default
<div class="showcase-card-caption">
<div class="showcase-card-icons">
{% if project.windows %}
<img src="/assets/icons/windows.svg" alt="Windows" title="Windows" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/windows.svg" alt="Windows" title="Windows" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.macos %}
<img src="/assets/icons/macos.svg" alt="Mac" title="Mac" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/macos.svg" alt="Mac" title="Mac" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if project.linux %}
<img src="/assets/icons/linux.svg" alt="Linux" title="Linux" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/linux.svg" alt="Linux" title="Linux" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.switch %}
<img src="/assets/icons/switch.svg" alt="Nintendo Switch" title="Switch" style="margin: 0 0.125rem"
<img src="/assets/images/platforms/switch.svg" alt="Nintendo Switch" title="Switch" style="margin: 0 0.125rem"
width="24" height="24">
{% endif %}
{% if project.html5 %}
<img src="/assets/icons/html5.svg" alt="HTML5" title="HTML5" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/web.svg" alt="HTML5" title="HTML5" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.android %}
<img src="/assets/icons/android.svg" alt="Android" title="Android" style="margin: 0 0.125rem" width="24"
<img src="/assets/images/platforms/android.svg" alt="Android" title="Android" style="margin: 0 0.125rem" width="24"
height="24">
{% endif %}
{% if project.ios %}
<img src="/assets/icons/ios.svg" alt="iOS" title="iOS" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/ios.svg" alt="iOS" title="iOS" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
{% if project.playstation %}
<img src="/assets/icons/playstation.svg" alt="PlayStation" title="PlayStation" style="margin: 0 0.125rem"
<img src="/assets/images/platforms/playstation.svg" alt="PlayStation" title="PlayStation" style="margin: 0 0.125rem"
width="24" height="24">
{% endif %}
{% if project.xbox %}
<img src="/assets/icons/xbox.svg" alt="Xbox" title="Xbox" style="margin: 0 0.125rem" width="24" height="24">
<img src="/assets/images/platforms/xbox.svg" alt="Xbox" title="Xbox" style="margin: 0 0.125rem" width="24" height="24">
{% endif %}
</div>
<div class="showcase-card-authors">