Add 4.3 release page (#882)
- Web development by Adam Scott with help from Emilio Coppola - Design template by Luis Carli - Visuals by Adam Scott with speial thanks to GDQuest, Kenney, and FR3NKD - Texts by Nathalie Galla & Adam Scott Co-authored-by: Nathalie Galla <murderveggie@gmail.com> Co-authored-by: luiscarli <git@luiscarli.com> Co-authored-by: Emi <2206700+coppolaemilio@users.noreply.github.com> Co-authored-by: Rémi Verschelde <rverschelde@gmail.com>
@@ -91,3 +91,8 @@ pagination:
|
||||
category: "posts"
|
||||
tag: ""
|
||||
locale: ""
|
||||
|
||||
# .scss generation
|
||||
sass:
|
||||
sass_dir: _sass
|
||||
style: compressed
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
- name: "4.3"
|
||||
flavor: "rc3"
|
||||
release_date: "8 August 2024"
|
||||
release_notes: "/article/release-candidate-godot-4-3-rc-3/"
|
||||
flavor: "stable"
|
||||
release_date: "15 August 2024"
|
||||
release_notes: "/releases/4.3/"
|
||||
featured: "4"
|
||||
releases:
|
||||
- name: "rc3"
|
||||
release_date: "8 August 2024"
|
||||
release_notes: "/article/release-candidate-godot-4-3-rc-3/"
|
||||
- name: "rc2"
|
||||
release_date: "1 August 2024"
|
||||
release_notes: "/article/release-candidate-godot-4-3-rc-2/"
|
||||
@@ -41,7 +45,6 @@
|
||||
flavor: "stable"
|
||||
release_date: "17 April 2024"
|
||||
release_notes: "/article/maintenance-release-godot-4-2-2-and-4-1-4/"
|
||||
featured: "4"
|
||||
releases:
|
||||
- name: "rc3"
|
||||
release_date: "12 April 2024"
|
||||
|
||||
@@ -26,12 +26,12 @@
|
||||
{% if primary[0] == "linux" or primary[0] == "macos" or primary[0] == "windows" %}
|
||||
{% assign platform_info = site.data.download_platforms | find: "name", primary[1] %}
|
||||
|
||||
<div class="download-platform">
|
||||
<div class="download-platform platform-{{primary[0]}}">
|
||||
<img width="24" height="24" src="/assets/images/platforms/{{ primary[0] | split: "_" | join: "-" }}.svg" title="{{ platform_info.title }}" alt="{{ platform_info.title }}" class="lightbox-ignore" />
|
||||
{{ platform_info.title }}
|
||||
</div>
|
||||
|
||||
<a href="{{ release_version | make_download: primary[1], false, "github_builds" }}" class="btn btn-download btn-download-primary">
|
||||
<a href="{{ release_version | make_download: primary[1], false, "github_builds" }}" class="btn btn-download btn-download-primary platform-{{primary[0]}}">
|
||||
<div class="download-title">
|
||||
Standard
|
||||
</div>
|
||||
@@ -42,7 +42,7 @@
|
||||
<div></div>
|
||||
{% else %}
|
||||
{% assign has_mono = true %}
|
||||
<a href="{{ mono_download }}" class="btn btn-download btn-download-primary btn-download-primary--mono">
|
||||
<a href="{{ mono_download }}" class="btn btn-download btn-download-primary btn-download-primary--mono platform-{{primary[0]}}">
|
||||
<div class="download-title">
|
||||
.NET
|
||||
</div>
|
||||
|
||||
@@ -24,8 +24,8 @@
|
||||
<link rel="icon" href="/assets/favicon.svg" type="image/svg+xml">
|
||||
<link rel="stylesheet" href="/assets/css/main.css?113">
|
||||
<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>
|
||||
<link rel="preload" as="font" href="/assets/fonts/Montserrat-Italic-VariableFont_wght.woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/assets/fonts/Montserrat-VariableFont_wght.woff2" crossorigin>
|
||||
<link rel="me" href="https://mastodon.gamedev.place/@godotengine">
|
||||
</head>
|
||||
|
||||
|
||||
13
_layouts/release.html
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
layout: default
|
||||
---
|
||||
|
||||
{% include header.html %}
|
||||
|
||||
<link rel="stylesheet" href="/assets/css/release.css" />
|
||||
|
||||
<div class="release-container">
|
||||
{{ content }}
|
||||
</div>
|
||||
|
||||
{% include footer.html %}
|
||||
36
_sass/common/_colors.scss
Normal file
@@ -0,0 +1,36 @@
|
||||
$color-godot-blue: #478CBF;
|
||||
|
||||
$color-code-symbol--light: #00009c;
|
||||
$color-code-symbol--dark: #ABC9FF;
|
||||
$color-code-keyword--light: #e62282;
|
||||
$color-code-keyword--dark: #FF7085;
|
||||
$color-code-controlflow--light: #bd1fcc;
|
||||
$color-code-controlflow--dark: #FF8CCC;
|
||||
$color-code-basetype--light: #009933;
|
||||
$color-code-basetype--dark: #42FFC2;
|
||||
$color-code-enginetype--light: #1c8c66;
|
||||
$color-code-enginetype--dark: #8FFFDB;
|
||||
$color-code-usertype--light: #2e7366;
|
||||
$color-code-usertype--dark: #C7FFED;
|
||||
$color-code-string--light: #996b00;
|
||||
$color-code-string--dark: #FFEDA1;
|
||||
$color-code-background--light: #ffffff;
|
||||
$color-code-background--dark: #1D2229;
|
||||
$color-code-text--light: #393939;
|
||||
$color-code-text--dark: #CDCFD2;
|
||||
$color-code-function--light: #0039e6;
|
||||
$color-code-function--dark: #57B3FF;
|
||||
$color-code-membervariable--light: #0066ad;
|
||||
$color-code-membervariable--dark: #BCE0FF;
|
||||
$color-code-gdscript-function--light: #009999;
|
||||
$color-code-gdscript-function--dark: #66E6FF;
|
||||
$color-code-gdscript-globalfunction--light: #5c2eb8;
|
||||
$color-code-gdscript-globalfunction--dark: #A3A3F5;
|
||||
$color-code-gdscript-nodepath--light: #2e8c00;
|
||||
$color-code-gdscript-nodepath--dark: #B8C47D;
|
||||
$color-code-gdscript-nodereference--light: #008000;
|
||||
$color-code-gdscript-nodereference--dark: #63C259;
|
||||
$color-code-gdscript-annotation--light: #cc5e00;
|
||||
$color-code-gdscript-annotation--dark: #FFB373;
|
||||
$color-code-gdscript-stringname--light: #cc8f73;
|
||||
$color-code-gdscript-stringname--dark: #FFC2A6;
|
||||
53
_sass/common/_release.scss
Normal file
@@ -0,0 +1,53 @@
|
||||
@function offset-hue($color, $offset, $i: 1) {
|
||||
@return adjust-hue($color, $offset * $i);
|
||||
}
|
||||
|
||||
/**
|
||||
* From a list $sections (video, foundation, outstanding, _2d),
|
||||
* it will return a map of sections with the $base-category being assigned with
|
||||
* a specific $base-color, and will $offset each section by n degrees.
|
||||
*/
|
||||
@function r-generate-sections($sections, $base-category, $base-color, $offset) {
|
||||
$return-value: ();
|
||||
$base-category-i: index($sections, $base-category);
|
||||
@each $section in $sections {
|
||||
$i: index($sections, $section);
|
||||
$diff: $i - $base-category-i;
|
||||
$base-color-top: offset-hue($base-color, $offset, $diff);
|
||||
$base-color-bottom: adjust-color(offset-hue($base-color, $offset, $diff + 1), $lightness: -10);
|
||||
$color-top: adjust-color($base-color-top, $saturation: -10);
|
||||
$color-bottom: adjust-color($base-color-bottom, $saturation: -10);
|
||||
$color-selection: adjust-color($base-color-bottom, $saturation: -30);
|
||||
$color-invert: adjust-color($base-color-top, $hue: 180, $lightness: 0, $saturation: 30);
|
||||
$color-highlight: adjust-color($base-color-top, $lightness: 0, $saturation: 30);
|
||||
$color-highlight--dark: adjust-color($base-color-top, $lightness: 30, $saturation: 30);
|
||||
$color-invert-highlight: adjust-color($color-invert, $lightness: 20, $saturation: 30);
|
||||
$return-value: map-merge($return-value, (
|
||||
#{$section}: (
|
||||
color-top: $color-top,
|
||||
color-bottom: $color-bottom,
|
||||
color-selection: $color-selection,
|
||||
color-invert: $color-invert,
|
||||
color-highlight: $color-highlight,
|
||||
color-highlight--dark: $color-highlight--dark,
|
||||
color-invert-highlight: $color-invert-highlight
|
||||
)
|
||||
));
|
||||
}
|
||||
@return $return-value;
|
||||
}
|
||||
|
||||
@function r-desktop-mobile($sizes...) {
|
||||
@return (
|
||||
"desktop": nth($sizes, 1),
|
||||
"mobile": nth($sizes, 2)
|
||||
);
|
||||
}
|
||||
|
||||
@function r-get-desktop($value) {
|
||||
@return map-get($value, "desktop");
|
||||
}
|
||||
|
||||
@function r-get-mobile($value) {
|
||||
@return map-get($value, "mobile");
|
||||
}
|
||||
BIN
assets/Montserrat-Italic.woff2
Normal file
BIN
assets/Montserrat-Medium.woff2
Normal file
BIN
assets/Montserrat-MediumItalic.woff2
Normal file
BIN
assets/Montserrat-Regular.woff2
Normal file
BIN
assets/Montserrat-SemiBold.woff2
Normal file
BIN
assets/Montserrat-SemiBoldItalic.woff2
Normal file
630
assets/css/codicon.css
Normal file
@@ -0,0 +1,630 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the MIT License. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
@font-face {
|
||||
font-family: "codicon";
|
||||
font-display: block;
|
||||
src: url("../fonts/codicon.ttf") format("truetype");
|
||||
}
|
||||
|
||||
.codicon[class*='codicon-'] {
|
||||
font: normal normal normal 16px/1 codicon;
|
||||
display: inline-block;
|
||||
text-decoration: none;
|
||||
text-rendering: auto;
|
||||
text-align: center;
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
user-select: none;
|
||||
-webkit-user-select: none;
|
||||
-ms-user-select: none;
|
||||
}
|
||||
|
||||
/*---------------------
|
||||
* Modifiers
|
||||
*-------------------*/
|
||||
|
||||
@keyframes codicon-spin {
|
||||
100% {
|
||||
transform:rotate(360deg);
|
||||
}
|
||||
}
|
||||
|
||||
.codicon-sync.codicon-modifier-spin,
|
||||
.codicon-loading.codicon-modifier-spin,
|
||||
.codicon-gear.codicon-modifier-spin {
|
||||
/* Use steps to throttle FPS to reduce CPU usage */
|
||||
animation: codicon-spin 1.5s steps(30) infinite;
|
||||
}
|
||||
|
||||
.codicon-modifier-disabled {
|
||||
opacity: 0.5;
|
||||
}
|
||||
|
||||
.codicon-modifier-hidden {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
/* custom speed & easing for loading icon */
|
||||
.codicon-loading {
|
||||
animation-duration: 1s !important;
|
||||
animation-timing-function: cubic-bezier(0.53, 0.21, 0.29, 0.67) !important;
|
||||
}
|
||||
|
||||
/*---------------------
|
||||
* Icons
|
||||
*-------------------*/
|
||||
|
||||
.codicon-add:before { content: "\ea60" }
|
||||
.codicon-plus:before { content: "\ea60" }
|
||||
.codicon-gist-new:before { content: "\ea60" }
|
||||
.codicon-repo-create:before { content: "\ea60" }
|
||||
.codicon-lightbulb:before { content: "\ea61" }
|
||||
.codicon-light-bulb:before { content: "\ea61" }
|
||||
.codicon-repo:before { content: "\ea62" }
|
||||
.codicon-repo-delete:before { content: "\ea62" }
|
||||
.codicon-gist-fork:before { content: "\ea63" }
|
||||
.codicon-repo-forked:before { content: "\ea63" }
|
||||
.codicon-git-pull-request:before { content: "\ea64" }
|
||||
.codicon-git-pull-request-abandoned:before { content: "\ea64" }
|
||||
.codicon-record-keys:before { content: "\ea65" }
|
||||
.codicon-keyboard:before { content: "\ea65" }
|
||||
.codicon-tag:before { content: "\ea66" }
|
||||
.codicon-git-pull-request-label:before { content: "\ea66" }
|
||||
.codicon-tag-add:before { content: "\ea66" }
|
||||
.codicon-tag-remove:before { content: "\ea66" }
|
||||
.codicon-person:before { content: "\ea67" }
|
||||
.codicon-person-follow:before { content: "\ea67" }
|
||||
.codicon-person-outline:before { content: "\ea67" }
|
||||
.codicon-person-filled:before { content: "\ea67" }
|
||||
.codicon-git-branch:before { content: "\ea68" }
|
||||
.codicon-git-branch-create:before { content: "\ea68" }
|
||||
.codicon-git-branch-delete:before { content: "\ea68" }
|
||||
.codicon-source-control:before { content: "\ea68" }
|
||||
.codicon-mirror:before { content: "\ea69" }
|
||||
.codicon-mirror-public:before { content: "\ea69" }
|
||||
.codicon-star:before { content: "\ea6a" }
|
||||
.codicon-star-add:before { content: "\ea6a" }
|
||||
.codicon-star-delete:before { content: "\ea6a" }
|
||||
.codicon-star-empty:before { content: "\ea6a" }
|
||||
.codicon-comment:before { content: "\ea6b" }
|
||||
.codicon-comment-add:before { content: "\ea6b" }
|
||||
.codicon-alert:before { content: "\ea6c" }
|
||||
.codicon-warning:before { content: "\ea6c" }
|
||||
.codicon-search:before { content: "\ea6d" }
|
||||
.codicon-search-save:before { content: "\ea6d" }
|
||||
.codicon-log-out:before { content: "\ea6e" }
|
||||
.codicon-sign-out:before { content: "\ea6e" }
|
||||
.codicon-log-in:before { content: "\ea6f" }
|
||||
.codicon-sign-in:before { content: "\ea6f" }
|
||||
.codicon-eye:before { content: "\ea70" }
|
||||
.codicon-eye-unwatch:before { content: "\ea70" }
|
||||
.codicon-eye-watch:before { content: "\ea70" }
|
||||
.codicon-circle-filled:before { content: "\ea71" }
|
||||
.codicon-primitive-dot:before { content: "\ea71" }
|
||||
.codicon-close-dirty:before { content: "\ea71" }
|
||||
.codicon-debug-breakpoint:before { content: "\ea71" }
|
||||
.codicon-debug-breakpoint-disabled:before { content: "\ea71" }
|
||||
.codicon-debug-hint:before { content: "\ea71" }
|
||||
.codicon-terminal-decoration-success:before { content: "\ea71" }
|
||||
.codicon-primitive-square:before { content: "\ea72" }
|
||||
.codicon-edit:before { content: "\ea73" }
|
||||
.codicon-pencil:before { content: "\ea73" }
|
||||
.codicon-info:before { content: "\ea74" }
|
||||
.codicon-issue-opened:before { content: "\ea74" }
|
||||
.codicon-gist-private:before { content: "\ea75" }
|
||||
.codicon-git-fork-private:before { content: "\ea75" }
|
||||
.codicon-lock:before { content: "\ea75" }
|
||||
.codicon-mirror-private:before { content: "\ea75" }
|
||||
.codicon-close:before { content: "\ea76" }
|
||||
.codicon-remove-close:before { content: "\ea76" }
|
||||
.codicon-x:before { content: "\ea76" }
|
||||
.codicon-repo-sync:before { content: "\ea77" }
|
||||
.codicon-sync:before { content: "\ea77" }
|
||||
.codicon-clone:before { content: "\ea78" }
|
||||
.codicon-desktop-download:before { content: "\ea78" }
|
||||
.codicon-beaker:before { content: "\ea79" }
|
||||
.codicon-microscope:before { content: "\ea79" }
|
||||
.codicon-vm:before { content: "\ea7a" }
|
||||
.codicon-device-desktop:before { content: "\ea7a" }
|
||||
.codicon-file:before { content: "\ea7b" }
|
||||
.codicon-file-text:before { content: "\ea7b" }
|
||||
.codicon-more:before { content: "\ea7c" }
|
||||
.codicon-ellipsis:before { content: "\ea7c" }
|
||||
.codicon-kebab-horizontal:before { content: "\ea7c" }
|
||||
.codicon-mail-reply:before { content: "\ea7d" }
|
||||
.codicon-reply:before { content: "\ea7d" }
|
||||
.codicon-organization:before { content: "\ea7e" }
|
||||
.codicon-organization-filled:before { content: "\ea7e" }
|
||||
.codicon-organization-outline:before { content: "\ea7e" }
|
||||
.codicon-new-file:before { content: "\ea7f" }
|
||||
.codicon-file-add:before { content: "\ea7f" }
|
||||
.codicon-new-folder:before { content: "\ea80" }
|
||||
.codicon-file-directory-create:before { content: "\ea80" }
|
||||
.codicon-trash:before { content: "\ea81" }
|
||||
.codicon-trashcan:before { content: "\ea81" }
|
||||
.codicon-history:before { content: "\ea82" }
|
||||
.codicon-clock:before { content: "\ea82" }
|
||||
.codicon-folder:before { content: "\ea83" }
|
||||
.codicon-file-directory:before { content: "\ea83" }
|
||||
.codicon-symbol-folder:before { content: "\ea83" }
|
||||
.codicon-logo-github:before { content: "\ea84" }
|
||||
.codicon-mark-github:before { content: "\ea84" }
|
||||
.codicon-github:before { content: "\ea84" }
|
||||
.codicon-terminal:before { content: "\ea85" }
|
||||
.codicon-console:before { content: "\ea85" }
|
||||
.codicon-repl:before { content: "\ea85" }
|
||||
.codicon-zap:before { content: "\ea86" }
|
||||
.codicon-symbol-event:before { content: "\ea86" }
|
||||
.codicon-error:before { content: "\ea87" }
|
||||
.codicon-stop:before { content: "\ea87" }
|
||||
.codicon-variable:before { content: "\ea88" }
|
||||
.codicon-symbol-variable:before { content: "\ea88" }
|
||||
.codicon-array:before { content: "\ea8a" }
|
||||
.codicon-symbol-array:before { content: "\ea8a" }
|
||||
.codicon-symbol-module:before { content: "\ea8b" }
|
||||
.codicon-symbol-package:before { content: "\ea8b" }
|
||||
.codicon-symbol-namespace:before { content: "\ea8b" }
|
||||
.codicon-symbol-object:before { content: "\ea8b" }
|
||||
.codicon-symbol-method:before { content: "\ea8c" }
|
||||
.codicon-symbol-function:before { content: "\ea8c" }
|
||||
.codicon-symbol-constructor:before { content: "\ea8c" }
|
||||
.codicon-symbol-boolean:before { content: "\ea8f" }
|
||||
.codicon-symbol-null:before { content: "\ea8f" }
|
||||
.codicon-symbol-numeric:before { content: "\ea90" }
|
||||
.codicon-symbol-number:before { content: "\ea90" }
|
||||
.codicon-symbol-structure:before { content: "\ea91" }
|
||||
.codicon-symbol-struct:before { content: "\ea91" }
|
||||
.codicon-symbol-parameter:before { content: "\ea92" }
|
||||
.codicon-symbol-type-parameter:before { content: "\ea92" }
|
||||
.codicon-symbol-key:before { content: "\ea93" }
|
||||
.codicon-symbol-text:before { content: "\ea93" }
|
||||
.codicon-symbol-reference:before { content: "\ea94" }
|
||||
.codicon-go-to-file:before { content: "\ea94" }
|
||||
.codicon-symbol-enum:before { content: "\ea95" }
|
||||
.codicon-symbol-value:before { content: "\ea95" }
|
||||
.codicon-symbol-ruler:before { content: "\ea96" }
|
||||
.codicon-symbol-unit:before { content: "\ea96" }
|
||||
.codicon-activate-breakpoints:before { content: "\ea97" }
|
||||
.codicon-archive:before { content: "\ea98" }
|
||||
.codicon-arrow-both:before { content: "\ea99" }
|
||||
.codicon-arrow-down:before { content: "\ea9a" }
|
||||
.codicon-arrow-left:before { content: "\ea9b" }
|
||||
.codicon-arrow-right:before { content: "\ea9c" }
|
||||
.codicon-arrow-small-down:before { content: "\ea9d" }
|
||||
.codicon-arrow-small-left:before { content: "\ea9e" }
|
||||
.codicon-arrow-small-right:before { content: "\ea9f" }
|
||||
.codicon-arrow-small-up:before { content: "\eaa0" }
|
||||
.codicon-arrow-up:before { content: "\eaa1" }
|
||||
.codicon-bell:before { content: "\eaa2" }
|
||||
.codicon-bold:before { content: "\eaa3" }
|
||||
.codicon-book:before { content: "\eaa4" }
|
||||
.codicon-bookmark:before { content: "\eaa5" }
|
||||
.codicon-debug-breakpoint-conditional-unverified:before { content: "\eaa6" }
|
||||
.codicon-debug-breakpoint-conditional:before { content: "\eaa7" }
|
||||
.codicon-debug-breakpoint-conditional-disabled:before { content: "\eaa7" }
|
||||
.codicon-debug-breakpoint-data-unverified:before { content: "\eaa8" }
|
||||
.codicon-debug-breakpoint-data:before { content: "\eaa9" }
|
||||
.codicon-debug-breakpoint-data-disabled:before { content: "\eaa9" }
|
||||
.codicon-debug-breakpoint-log-unverified:before { content: "\eaaa" }
|
||||
.codicon-debug-breakpoint-log:before { content: "\eaab" }
|
||||
.codicon-debug-breakpoint-log-disabled:before { content: "\eaab" }
|
||||
.codicon-briefcase:before { content: "\eaac" }
|
||||
.codicon-broadcast:before { content: "\eaad" }
|
||||
.codicon-browser:before { content: "\eaae" }
|
||||
.codicon-bug:before { content: "\eaaf" }
|
||||
.codicon-calendar:before { content: "\eab0" }
|
||||
.codicon-case-sensitive:before { content: "\eab1" }
|
||||
.codicon-check:before { content: "\eab2" }
|
||||
.codicon-checklist:before { content: "\eab3" }
|
||||
.codicon-chevron-down:before { content: "\eab4" }
|
||||
.codicon-chevron-left:before { content: "\eab5" }
|
||||
.codicon-chevron-right:before { content: "\eab6" }
|
||||
.codicon-chevron-up:before { content: "\eab7" }
|
||||
.codicon-chrome-close:before { content: "\eab8" }
|
||||
.codicon-chrome-maximize:before { content: "\eab9" }
|
||||
.codicon-chrome-minimize:before { content: "\eaba" }
|
||||
.codicon-chrome-restore:before { content: "\eabb" }
|
||||
.codicon-circle-outline:before { content: "\eabc" }
|
||||
.codicon-circle:before { content: "\eabc" }
|
||||
.codicon-debug-breakpoint-unverified:before { content: "\eabc" }
|
||||
.codicon-terminal-decoration-incomplete:before { content: "\eabc" }
|
||||
.codicon-circle-slash:before { content: "\eabd" }
|
||||
.codicon-circuit-board:before { content: "\eabe" }
|
||||
.codicon-clear-all:before { content: "\eabf" }
|
||||
.codicon-clippy:before { content: "\eac0" }
|
||||
.codicon-close-all:before { content: "\eac1" }
|
||||
.codicon-cloud-download:before { content: "\eac2" }
|
||||
.codicon-cloud-upload:before { content: "\eac3" }
|
||||
.codicon-code:before { content: "\eac4" }
|
||||
.codicon-collapse-all:before { content: "\eac5" }
|
||||
.codicon-color-mode:before { content: "\eac6" }
|
||||
.codicon-comment-discussion:before { content: "\eac7" }
|
||||
.codicon-credit-card:before { content: "\eac9" }
|
||||
.codicon-dash:before { content: "\eacc" }
|
||||
.codicon-dashboard:before { content: "\eacd" }
|
||||
.codicon-database:before { content: "\eace" }
|
||||
.codicon-debug-continue:before { content: "\eacf" }
|
||||
.codicon-debug-disconnect:before { content: "\ead0" }
|
||||
.codicon-debug-pause:before { content: "\ead1" }
|
||||
.codicon-debug-restart:before { content: "\ead2" }
|
||||
.codicon-debug-start:before { content: "\ead3" }
|
||||
.codicon-debug-step-into:before { content: "\ead4" }
|
||||
.codicon-debug-step-out:before { content: "\ead5" }
|
||||
.codicon-debug-step-over:before { content: "\ead6" }
|
||||
.codicon-debug-stop:before { content: "\ead7" }
|
||||
.codicon-debug:before { content: "\ead8" }
|
||||
.codicon-device-camera-video:before { content: "\ead9" }
|
||||
.codicon-device-camera:before { content: "\eada" }
|
||||
.codicon-device-mobile:before { content: "\eadb" }
|
||||
.codicon-diff-added:before { content: "\eadc" }
|
||||
.codicon-diff-ignored:before { content: "\eadd" }
|
||||
.codicon-diff-modified:before { content: "\eade" }
|
||||
.codicon-diff-removed:before { content: "\eadf" }
|
||||
.codicon-diff-renamed:before { content: "\eae0" }
|
||||
.codicon-diff:before { content: "\eae1" }
|
||||
.codicon-diff-sidebyside:before { content: "\eae1" }
|
||||
.codicon-discard:before { content: "\eae2" }
|
||||
.codicon-editor-layout:before { content: "\eae3" }
|
||||
.codicon-empty-window:before { content: "\eae4" }
|
||||
.codicon-exclude:before { content: "\eae5" }
|
||||
.codicon-extensions:before { content: "\eae6" }
|
||||
.codicon-eye-closed:before { content: "\eae7" }
|
||||
.codicon-file-binary:before { content: "\eae8" }
|
||||
.codicon-file-code:before { content: "\eae9" }
|
||||
.codicon-file-media:before { content: "\eaea" }
|
||||
.codicon-file-pdf:before { content: "\eaeb" }
|
||||
.codicon-file-submodule:before { content: "\eaec" }
|
||||
.codicon-file-symlink-directory:before { content: "\eaed" }
|
||||
.codicon-file-symlink-file:before { content: "\eaee" }
|
||||
.codicon-file-zip:before { content: "\eaef" }
|
||||
.codicon-files:before { content: "\eaf0" }
|
||||
.codicon-filter:before { content: "\eaf1" }
|
||||
.codicon-flame:before { content: "\eaf2" }
|
||||
.codicon-fold-down:before { content: "\eaf3" }
|
||||
.codicon-fold-up:before { content: "\eaf4" }
|
||||
.codicon-fold:before { content: "\eaf5" }
|
||||
.codicon-folder-active:before { content: "\eaf6" }
|
||||
.codicon-folder-opened:before { content: "\eaf7" }
|
||||
.codicon-gear:before { content: "\eaf8" }
|
||||
.codicon-gift:before { content: "\eaf9" }
|
||||
.codicon-gist-secret:before { content: "\eafa" }
|
||||
.codicon-gist:before { content: "\eafb" }
|
||||
.codicon-git-commit:before { content: "\eafc" }
|
||||
.codicon-git-compare:before { content: "\eafd" }
|
||||
.codicon-compare-changes:before { content: "\eafd" }
|
||||
.codicon-git-merge:before { content: "\eafe" }
|
||||
.codicon-github-action:before { content: "\eaff" }
|
||||
.codicon-github-alt:before { content: "\eb00" }
|
||||
.codicon-globe:before { content: "\eb01" }
|
||||
.codicon-grabber:before { content: "\eb02" }
|
||||
.codicon-graph:before { content: "\eb03" }
|
||||
.codicon-gripper:before { content: "\eb04" }
|
||||
.codicon-heart:before { content: "\eb05" }
|
||||
.codicon-home:before { content: "\eb06" }
|
||||
.codicon-horizontal-rule:before { content: "\eb07" }
|
||||
.codicon-hubot:before { content: "\eb08" }
|
||||
.codicon-inbox:before { content: "\eb09" }
|
||||
.codicon-issue-reopened:before { content: "\eb0b" }
|
||||
.codicon-issues:before { content: "\eb0c" }
|
||||
.codicon-italic:before { content: "\eb0d" }
|
||||
.codicon-jersey:before { content: "\eb0e" }
|
||||
.codicon-json:before { content: "\eb0f" }
|
||||
.codicon-kebab-vertical:before { content: "\eb10" }
|
||||
.codicon-key:before { content: "\eb11" }
|
||||
.codicon-law:before { content: "\eb12" }
|
||||
.codicon-lightbulb-autofix:before { content: "\eb13" }
|
||||
.codicon-link-external:before { content: "\eb14" }
|
||||
.codicon-link:before { content: "\eb15" }
|
||||
.codicon-list-ordered:before { content: "\eb16" }
|
||||
.codicon-list-unordered:before { content: "\eb17" }
|
||||
.codicon-live-share:before { content: "\eb18" }
|
||||
.codicon-loading:before { content: "\eb19" }
|
||||
.codicon-location:before { content: "\eb1a" }
|
||||
.codicon-mail-read:before { content: "\eb1b" }
|
||||
.codicon-mail:before { content: "\eb1c" }
|
||||
.codicon-markdown:before { content: "\eb1d" }
|
||||
.codicon-megaphone:before { content: "\eb1e" }
|
||||
.codicon-mention:before { content: "\eb1f" }
|
||||
.codicon-milestone:before { content: "\eb20" }
|
||||
.codicon-git-pull-request-milestone:before { content: "\eb20" }
|
||||
.codicon-mortar-board:before { content: "\eb21" }
|
||||
.codicon-move:before { content: "\eb22" }
|
||||
.codicon-multiple-windows:before { content: "\eb23" }
|
||||
.codicon-mute:before { content: "\eb24" }
|
||||
.codicon-no-newline:before { content: "\eb25" }
|
||||
.codicon-note:before { content: "\eb26" }
|
||||
.codicon-octoface:before { content: "\eb27" }
|
||||
.codicon-open-preview:before { content: "\eb28" }
|
||||
.codicon-package:before { content: "\eb29" }
|
||||
.codicon-paintcan:before { content: "\eb2a" }
|
||||
.codicon-pin:before { content: "\eb2b" }
|
||||
.codicon-play:before { content: "\eb2c" }
|
||||
.codicon-run:before { content: "\eb2c" }
|
||||
.codicon-plug:before { content: "\eb2d" }
|
||||
.codicon-preserve-case:before { content: "\eb2e" }
|
||||
.codicon-preview:before { content: "\eb2f" }
|
||||
.codicon-project:before { content: "\eb30" }
|
||||
.codicon-pulse:before { content: "\eb31" }
|
||||
.codicon-question:before { content: "\eb32" }
|
||||
.codicon-quote:before { content: "\eb33" }
|
||||
.codicon-radio-tower:before { content: "\eb34" }
|
||||
.codicon-reactions:before { content: "\eb35" }
|
||||
.codicon-references:before { content: "\eb36" }
|
||||
.codicon-refresh:before { content: "\eb37" }
|
||||
.codicon-regex:before { content: "\eb38" }
|
||||
.codicon-remote-explorer:before { content: "\eb39" }
|
||||
.codicon-remote:before { content: "\eb3a" }
|
||||
.codicon-remove:before { content: "\eb3b" }
|
||||
.codicon-replace-all:before { content: "\eb3c" }
|
||||
.codicon-replace:before { content: "\eb3d" }
|
||||
.codicon-repo-clone:before { content: "\eb3e" }
|
||||
.codicon-repo-force-push:before { content: "\eb3f" }
|
||||
.codicon-repo-pull:before { content: "\eb40" }
|
||||
.codicon-repo-push:before { content: "\eb41" }
|
||||
.codicon-report:before { content: "\eb42" }
|
||||
.codicon-request-changes:before { content: "\eb43" }
|
||||
.codicon-rocket:before { content: "\eb44" }
|
||||
.codicon-root-folder-opened:before { content: "\eb45" }
|
||||
.codicon-root-folder:before { content: "\eb46" }
|
||||
.codicon-rss:before { content: "\eb47" }
|
||||
.codicon-ruby:before { content: "\eb48" }
|
||||
.codicon-save-all:before { content: "\eb49" }
|
||||
.codicon-save-as:before { content: "\eb4a" }
|
||||
.codicon-save:before { content: "\eb4b" }
|
||||
.codicon-screen-full:before { content: "\eb4c" }
|
||||
.codicon-screen-normal:before { content: "\eb4d" }
|
||||
.codicon-search-stop:before { content: "\eb4e" }
|
||||
.codicon-server:before { content: "\eb50" }
|
||||
.codicon-settings-gear:before { content: "\eb51" }
|
||||
.codicon-settings:before { content: "\eb52" }
|
||||
.codicon-shield:before { content: "\eb53" }
|
||||
.codicon-smiley:before { content: "\eb54" }
|
||||
.codicon-sort-precedence:before { content: "\eb55" }
|
||||
.codicon-split-horizontal:before { content: "\eb56" }
|
||||
.codicon-split-vertical:before { content: "\eb57" }
|
||||
.codicon-squirrel:before { content: "\eb58" }
|
||||
.codicon-star-full:before { content: "\eb59" }
|
||||
.codicon-star-half:before { content: "\eb5a" }
|
||||
.codicon-symbol-class:before { content: "\eb5b" }
|
||||
.codicon-symbol-color:before { content: "\eb5c" }
|
||||
.codicon-symbol-constant:before { content: "\eb5d" }
|
||||
.codicon-symbol-enum-member:before { content: "\eb5e" }
|
||||
.codicon-symbol-field:before { content: "\eb5f" }
|
||||
.codicon-symbol-file:before { content: "\eb60" }
|
||||
.codicon-symbol-interface:before { content: "\eb61" }
|
||||
.codicon-symbol-keyword:before { content: "\eb62" }
|
||||
.codicon-symbol-misc:before { content: "\eb63" }
|
||||
.codicon-symbol-operator:before { content: "\eb64" }
|
||||
.codicon-symbol-property:before { content: "\eb65" }
|
||||
.codicon-wrench:before { content: "\eb65" }
|
||||
.codicon-wrench-subaction:before { content: "\eb65" }
|
||||
.codicon-symbol-snippet:before { content: "\eb66" }
|
||||
.codicon-tasklist:before { content: "\eb67" }
|
||||
.codicon-telescope:before { content: "\eb68" }
|
||||
.codicon-text-size:before { content: "\eb69" }
|
||||
.codicon-three-bars:before { content: "\eb6a" }
|
||||
.codicon-thumbsdown:before { content: "\eb6b" }
|
||||
.codicon-thumbsup:before { content: "\eb6c" }
|
||||
.codicon-tools:before { content: "\eb6d" }
|
||||
.codicon-triangle-down:before { content: "\eb6e" }
|
||||
.codicon-triangle-left:before { content: "\eb6f" }
|
||||
.codicon-triangle-right:before { content: "\eb70" }
|
||||
.codicon-triangle-up:before { content: "\eb71" }
|
||||
.codicon-twitter:before { content: "\eb72" }
|
||||
.codicon-unfold:before { content: "\eb73" }
|
||||
.codicon-unlock:before { content: "\eb74" }
|
||||
.codicon-unmute:before { content: "\eb75" }
|
||||
.codicon-unverified:before { content: "\eb76" }
|
||||
.codicon-verified:before { content: "\eb77" }
|
||||
.codicon-versions:before { content: "\eb78" }
|
||||
.codicon-vm-active:before { content: "\eb79" }
|
||||
.codicon-vm-outline:before { content: "\eb7a" }
|
||||
.codicon-vm-running:before { content: "\eb7b" }
|
||||
.codicon-watch:before { content: "\eb7c" }
|
||||
.codicon-whitespace:before { content: "\eb7d" }
|
||||
.codicon-whole-word:before { content: "\eb7e" }
|
||||
.codicon-window:before { content: "\eb7f" }
|
||||
.codicon-word-wrap:before { content: "\eb80" }
|
||||
.codicon-zoom-in:before { content: "\eb81" }
|
||||
.codicon-zoom-out:before { content: "\eb82" }
|
||||
.codicon-list-filter:before { content: "\eb83" }
|
||||
.codicon-list-flat:before { content: "\eb84" }
|
||||
.codicon-list-selection:before { content: "\eb85" }
|
||||
.codicon-selection:before { content: "\eb85" }
|
||||
.codicon-list-tree:before { content: "\eb86" }
|
||||
.codicon-debug-breakpoint-function-unverified:before { content: "\eb87" }
|
||||
.codicon-debug-breakpoint-function:before { content: "\eb88" }
|
||||
.codicon-debug-breakpoint-function-disabled:before { content: "\eb88" }
|
||||
.codicon-debug-stackframe-active:before { content: "\eb89" }
|
||||
.codicon-circle-small-filled:before { content: "\eb8a" }
|
||||
.codicon-debug-stackframe-dot:before { content: "\eb8a" }
|
||||
.codicon-terminal-decoration-mark:before { content: "\eb8a" }
|
||||
.codicon-debug-stackframe:before { content: "\eb8b" }
|
||||
.codicon-debug-stackframe-focused:before { content: "\eb8b" }
|
||||
.codicon-debug-breakpoint-unsupported:before { content: "\eb8c" }
|
||||
.codicon-symbol-string:before { content: "\eb8d" }
|
||||
.codicon-debug-reverse-continue:before { content: "\eb8e" }
|
||||
.codicon-debug-step-back:before { content: "\eb8f" }
|
||||
.codicon-debug-restart-frame:before { content: "\eb90" }
|
||||
.codicon-debug-alt:before { content: "\eb91" }
|
||||
.codicon-call-incoming:before { content: "\eb92" }
|
||||
.codicon-call-outgoing:before { content: "\eb93" }
|
||||
.codicon-menu:before { content: "\eb94" }
|
||||
.codicon-expand-all:before { content: "\eb95" }
|
||||
.codicon-feedback:before { content: "\eb96" }
|
||||
.codicon-git-pull-request-reviewer:before { content: "\eb96" }
|
||||
.codicon-group-by-ref-type:before { content: "\eb97" }
|
||||
.codicon-ungroup-by-ref-type:before { content: "\eb98" }
|
||||
.codicon-account:before { content: "\eb99" }
|
||||
.codicon-git-pull-request-assignee:before { content: "\eb99" }
|
||||
.codicon-bell-dot:before { content: "\eb9a" }
|
||||
.codicon-debug-console:before { content: "\eb9b" }
|
||||
.codicon-library:before { content: "\eb9c" }
|
||||
.codicon-output:before { content: "\eb9d" }
|
||||
.codicon-run-all:before { content: "\eb9e" }
|
||||
.codicon-sync-ignored:before { content: "\eb9f" }
|
||||
.codicon-pinned:before { content: "\eba0" }
|
||||
.codicon-github-inverted:before { content: "\eba1" }
|
||||
.codicon-server-process:before { content: "\eba2" }
|
||||
.codicon-server-environment:before { content: "\eba3" }
|
||||
.codicon-pass:before { content: "\eba4" }
|
||||
.codicon-issue-closed:before { content: "\eba4" }
|
||||
.codicon-stop-circle:before { content: "\eba5" }
|
||||
.codicon-play-circle:before { content: "\eba6" }
|
||||
.codicon-record:before { content: "\eba7" }
|
||||
.codicon-debug-alt-small:before { content: "\eba8" }
|
||||
.codicon-vm-connect:before { content: "\eba9" }
|
||||
.codicon-cloud:before { content: "\ebaa" }
|
||||
.codicon-merge:before { content: "\ebab" }
|
||||
.codicon-export:before { content: "\ebac" }
|
||||
.codicon-graph-left:before { content: "\ebad" }
|
||||
.codicon-magnet:before { content: "\ebae" }
|
||||
.codicon-notebook:before { content: "\ebaf" }
|
||||
.codicon-redo:before { content: "\ebb0" }
|
||||
.codicon-check-all:before { content: "\ebb1" }
|
||||
.codicon-pinned-dirty:before { content: "\ebb2" }
|
||||
.codicon-pass-filled:before { content: "\ebb3" }
|
||||
.codicon-circle-large-filled:before { content: "\ebb4" }
|
||||
.codicon-circle-large:before { content: "\ebb5" }
|
||||
.codicon-circle-large-outline:before { content: "\ebb5" }
|
||||
.codicon-combine:before { content: "\ebb6" }
|
||||
.codicon-gather:before { content: "\ebb6" }
|
||||
.codicon-table:before { content: "\ebb7" }
|
||||
.codicon-variable-group:before { content: "\ebb8" }
|
||||
.codicon-type-hierarchy:before { content: "\ebb9" }
|
||||
.codicon-type-hierarchy-sub:before { content: "\ebba" }
|
||||
.codicon-type-hierarchy-super:before { content: "\ebbb" }
|
||||
.codicon-git-pull-request-create:before { content: "\ebbc" }
|
||||
.codicon-run-above:before { content: "\ebbd" }
|
||||
.codicon-run-below:before { content: "\ebbe" }
|
||||
.codicon-notebook-template:before { content: "\ebbf" }
|
||||
.codicon-debug-rerun:before { content: "\ebc0" }
|
||||
.codicon-workspace-trusted:before { content: "\ebc1" }
|
||||
.codicon-workspace-untrusted:before { content: "\ebc2" }
|
||||
.codicon-workspace-unknown:before { content: "\ebc3" }
|
||||
.codicon-terminal-cmd:before { content: "\ebc4" }
|
||||
.codicon-terminal-debian:before { content: "\ebc5" }
|
||||
.codicon-terminal-linux:before { content: "\ebc6" }
|
||||
.codicon-terminal-powershell:before { content: "\ebc7" }
|
||||
.codicon-terminal-tmux:before { content: "\ebc8" }
|
||||
.codicon-terminal-ubuntu:before { content: "\ebc9" }
|
||||
.codicon-terminal-bash:before { content: "\ebca" }
|
||||
.codicon-arrow-swap:before { content: "\ebcb" }
|
||||
.codicon-copy:before { content: "\ebcc" }
|
||||
.codicon-person-add:before { content: "\ebcd" }
|
||||
.codicon-filter-filled:before { content: "\ebce" }
|
||||
.codicon-wand:before { content: "\ebcf" }
|
||||
.codicon-debug-line-by-line:before { content: "\ebd0" }
|
||||
.codicon-inspect:before { content: "\ebd1" }
|
||||
.codicon-layers:before { content: "\ebd2" }
|
||||
.codicon-layers-dot:before { content: "\ebd3" }
|
||||
.codicon-layers-active:before { content: "\ebd4" }
|
||||
.codicon-compass:before { content: "\ebd5" }
|
||||
.codicon-compass-dot:before { content: "\ebd6" }
|
||||
.codicon-compass-active:before { content: "\ebd7" }
|
||||
.codicon-azure:before { content: "\ebd8" }
|
||||
.codicon-issue-draft:before { content: "\ebd9" }
|
||||
.codicon-git-pull-request-closed:before { content: "\ebda" }
|
||||
.codicon-git-pull-request-draft:before { content: "\ebdb" }
|
||||
.codicon-debug-all:before { content: "\ebdc" }
|
||||
.codicon-debug-coverage:before { content: "\ebdd" }
|
||||
.codicon-run-errors:before { content: "\ebde" }
|
||||
.codicon-folder-library:before { content: "\ebdf" }
|
||||
.codicon-debug-continue-small:before { content: "\ebe0" }
|
||||
.codicon-beaker-stop:before { content: "\ebe1" }
|
||||
.codicon-graph-line:before { content: "\ebe2" }
|
||||
.codicon-graph-scatter:before { content: "\ebe3" }
|
||||
.codicon-pie-chart:before { content: "\ebe4" }
|
||||
.codicon-bracket:before { content: "\eb0f" }
|
||||
.codicon-bracket-dot:before { content: "\ebe5" }
|
||||
.codicon-bracket-error:before { content: "\ebe6" }
|
||||
.codicon-lock-small:before { content: "\ebe7" }
|
||||
.codicon-azure-devops:before { content: "\ebe8" }
|
||||
.codicon-verified-filled:before { content: "\ebe9" }
|
||||
.codicon-newline:before { content: "\ebea" }
|
||||
.codicon-layout:before { content: "\ebeb" }
|
||||
.codicon-layout-activitybar-left:before { content: "\ebec" }
|
||||
.codicon-layout-activitybar-right:before { content: "\ebed" }
|
||||
.codicon-layout-panel-left:before { content: "\ebee" }
|
||||
.codicon-layout-panel-center:before { content: "\ebef" }
|
||||
.codicon-layout-panel-justify:before { content: "\ebf0" }
|
||||
.codicon-layout-panel-right:before { content: "\ebf1" }
|
||||
.codicon-layout-panel:before { content: "\ebf2" }
|
||||
.codicon-layout-sidebar-left:before { content: "\ebf3" }
|
||||
.codicon-layout-sidebar-right:before { content: "\ebf4" }
|
||||
.codicon-layout-statusbar:before { content: "\ebf5" }
|
||||
.codicon-layout-menubar:before { content: "\ebf6" }
|
||||
.codicon-layout-centered:before { content: "\ebf7" }
|
||||
.codicon-target:before { content: "\ebf8" }
|
||||
.codicon-indent:before { content: "\ebf9" }
|
||||
.codicon-record-small:before { content: "\ebfa" }
|
||||
.codicon-error-small:before { content: "\ebfb" }
|
||||
.codicon-terminal-decoration-error:before { content: "\ebfb" }
|
||||
.codicon-arrow-circle-down:before { content: "\ebfc" }
|
||||
.codicon-arrow-circle-left:before { content: "\ebfd" }
|
||||
.codicon-arrow-circle-right:before { content: "\ebfe" }
|
||||
.codicon-arrow-circle-up:before { content: "\ebff" }
|
||||
.codicon-layout-sidebar-right-off:before { content: "\ec00" }
|
||||
.codicon-layout-panel-off:before { content: "\ec01" }
|
||||
.codicon-layout-sidebar-left-off:before { content: "\ec02" }
|
||||
.codicon-blank:before { content: "\ec03" }
|
||||
.codicon-heart-filled:before { content: "\ec04" }
|
||||
.codicon-map:before { content: "\ec05" }
|
||||
.codicon-map-horizontal:before { content: "\ec05" }
|
||||
.codicon-fold-horizontal:before { content: "\ec05" }
|
||||
.codicon-map-filled:before { content: "\ec06" }
|
||||
.codicon-map-horizontal-filled:before { content: "\ec06" }
|
||||
.codicon-fold-horizontal-filled:before { content: "\ec06" }
|
||||
.codicon-circle-small:before { content: "\ec07" }
|
||||
.codicon-bell-slash:before { content: "\ec08" }
|
||||
.codicon-bell-slash-dot:before { content: "\ec09" }
|
||||
.codicon-comment-unresolved:before { content: "\ec0a" }
|
||||
.codicon-git-pull-request-go-to-changes:before { content: "\ec0b" }
|
||||
.codicon-git-pull-request-new-changes:before { content: "\ec0c" }
|
||||
.codicon-search-fuzzy:before { content: "\ec0d" }
|
||||
.codicon-comment-draft:before { content: "\ec0e" }
|
||||
.codicon-send:before { content: "\ec0f" }
|
||||
.codicon-sparkle:before { content: "\ec10" }
|
||||
.codicon-insert:before { content: "\ec11" }
|
||||
.codicon-mic:before { content: "\ec12" }
|
||||
.codicon-thumbsdown-filled:before { content: "\ec13" }
|
||||
.codicon-thumbsup-filled:before { content: "\ec14" }
|
||||
.codicon-coffee:before { content: "\ec15" }
|
||||
.codicon-snake:before { content: "\ec16" }
|
||||
.codicon-game:before { content: "\ec17" }
|
||||
.codicon-vr:before { content: "\ec18" }
|
||||
.codicon-chip:before { content: "\ec19" }
|
||||
.codicon-piano:before { content: "\ec1a" }
|
||||
.codicon-music:before { content: "\ec1b" }
|
||||
.codicon-mic-filled:before { content: "\ec1c" }
|
||||
.codicon-repo-fetch:before { content: "\ec1d" }
|
||||
.codicon-copilot:before { content: "\ec1e" }
|
||||
.codicon-lightbulb-sparkle:before { content: "\ec1f" }
|
||||
.codicon-robot:before { content: "\ec20" }
|
||||
.codicon-sparkle-filled:before { content: "\ec21" }
|
||||
.codicon-diff-single:before { content: "\ec22" }
|
||||
.codicon-diff-multiple:before { content: "\ec23" }
|
||||
.codicon-surround-with:before { content: "\ec24" }
|
||||
.codicon-share:before { content: "\ec25" }
|
||||
.codicon-git-stash:before { content: "\ec26" }
|
||||
.codicon-git-stash-apply:before { content: "\ec27" }
|
||||
.codicon-git-stash-pop:before { content: "\ec28" }
|
||||
.codicon-vscode:before { content: "\ec29" }
|
||||
.codicon-vscode-insiders:before { content: "\ec2a" }
|
||||
.codicon-code-oss:before { content: "\ec2b" }
|
||||
.codicon-run-coverage:before { content: "\ec2c" }
|
||||
.codicon-run-all-coverage:before { content: "\ec2d" }
|
||||
.codicon-coverage:before { content: "\ec2e" }
|
||||
.codicon-github-project:before { content: "\ec2f" }
|
||||
.codicon-map-vertical:before { content: "\ec30" }
|
||||
.codicon-fold-vertical:before { content: "\ec30" }
|
||||
.codicon-map-vertical-filled:before { content: "\ec31" }
|
||||
.codicon-fold-vertical-filled:before { content: "\ec31" }
|
||||
.codicon-go-to-search:before { content: "\ec32" }
|
||||
.codicon-percentage:before { content: "\ec33" }
|
||||
.codicon-sort-percentage:before { content: "\ec33" }
|
||||
.codicon-attach:before { content: "\ec34" }
|
||||
.codicon-git-fetch:before { content: "\f101" }
|
||||
@@ -194,26 +194,74 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* Montserrat Bold */
|
||||
/* Montserrat */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-weight: 700;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
src: url("../fonts/Montserrat-Bold.woff2") format("woff2"),
|
||||
url("../fonts/Montserrat-Bold.woff") format("woff");
|
||||
font-family: "Montserrat";
|
||||
font-optical-sizing: auto;
|
||||
font-weight: 100 900;
|
||||
font-style: italic;
|
||||
font-display: swap;
|
||||
src: url("../fonts/Montserrat-Italic-VariableFont_wght.woff2") format("woff2"), url("../fonts/Montserrat-Italic-VariableFont_wght.ttf") format("truetype");
|
||||
}
|
||||
|
||||
/* Montserrat ExtraBold */
|
||||
@font-face {
|
||||
font-family: "Montserrat";
|
||||
font-weight: 800;
|
||||
font-family: "Montserrat";
|
||||
font-optical-sizing: auto;
|
||||
font-weight: 100 900;
|
||||
font-style: normal;
|
||||
font-display: swap;
|
||||
src: url("../fonts/Montserrat-ExtraBold.woff2") format("woff2"),
|
||||
url("../fonts/Montserrat-ExtraBold.woff") format("woff");
|
||||
font-display: swap;
|
||||
src: url("../fonts/Montserrat-VariableFont_wght.woff2") format("woff2"), url("../fonts/Montserrat-VariableFont_wght.ttf") format("truetype");
|
||||
}
|
||||
|
||||
/*
|
||||
Godot icon.
|
||||
Font made on https://fontello.com/, using
|
||||
`/assets/press/icon_monochrome_light.svg` linted on
|
||||
https://jakearchibald.github.io/svgomg/
|
||||
*/
|
||||
@font-face {
|
||||
font-family: 'godot';
|
||||
src: url("../fonts/godot.woff2") format("woff2");
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
}
|
||||
[class^="godot-icon-"]:before, [class*=" godot-icon-"]:before {
|
||||
font-family: "godot";
|
||||
font-style: normal;
|
||||
font-weight: normal;
|
||||
speak: never;
|
||||
|
||||
display: inline-block;
|
||||
text-decoration: inherit;
|
||||
width: 1em;
|
||||
margin-right: .2em;
|
||||
text-align: center;
|
||||
/* opacity: .8; */
|
||||
|
||||
/* For safety - reset parent styles, that can break glyph codes*/
|
||||
font-variant: normal;
|
||||
text-transform: none;
|
||||
|
||||
/* fix buttons height, for twitter bootstrap */
|
||||
line-height: 1em;
|
||||
|
||||
/* Animation center compensation - margins should be symmetric */
|
||||
/* remove if not needed */
|
||||
margin-left: .2em;
|
||||
|
||||
/* you can be more comfortable with increased icons size */
|
||||
/* font-size: 120%; */
|
||||
|
||||
/* Font smoothing. That was taken from TWBS */
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
|
||||
/* Uncomment for 3D effect */
|
||||
/* text-shadow: 1px 1px 1px rgba(127, 127, 127, 0.3); */
|
||||
}
|
||||
|
||||
.godot-icon-godot:before { content: '\e003'; } /* '' */
|
||||
|
||||
*:focus {
|
||||
/* More visible outline for better keyboard navigation. */
|
||||
outline: 0.125rem solid hsl(220, 100%, 62.5%);
|
||||
@@ -300,6 +348,10 @@ hr {
|
||||
border-top: 2px solid var(--base-color-text);
|
||||
}
|
||||
|
||||
main {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.intro-title {
|
||||
margin-top: 48px;
|
||||
margin-bottom: 48px;
|
||||
@@ -1510,4 +1562,4 @@ section.sponsors .grid {
|
||||
width: 100%;
|
||||
border: none;
|
||||
margin: 35px 0;
|
||||
}
|
||||
}
|
||||
|
||||
31
assets/css/material-symbols-outlined.css
Normal file
@@ -0,0 +1,31 @@
|
||||
/* fallback */
|
||||
@font-face {
|
||||
font-family: 'Material Symbols Outlined';
|
||||
font-style: normal;
|
||||
font-weight: 100 700;
|
||||
src: url("../fonts/materialsymbolsoutlined.woff2") format('woff2');
|
||||
}
|
||||
|
||||
.material-symbols-outlined {
|
||||
font-family: 'Material Symbols Outlined';
|
||||
font-weight: normal;
|
||||
font-style: normal;
|
||||
font-size: 24px;
|
||||
line-height: 1;
|
||||
letter-spacing: normal;
|
||||
text-transform: none;
|
||||
display: inline-block;
|
||||
white-space: nowrap;
|
||||
word-wrap: normal;
|
||||
direction: ltr;
|
||||
-moz-font-feature-settings: 'liga';
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
}
|
||||
|
||||
.material-symbols-outlined {
|
||||
font-variation-settings:
|
||||
'FILL' 0,
|
||||
'wght' 400,
|
||||
'GRAD' 0,
|
||||
'opsz' 24;
|
||||
}
|
||||
20
assets/css/release.scss
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
---
|
||||
@import "common/release";
|
||||
|
||||
html {
|
||||
scroll-behavior: smooth;
|
||||
|
||||
@media (prefers-reduced-motion) {
|
||||
scroll-behavior: auto;
|
||||
}
|
||||
}
|
||||
|
||||
footer {
|
||||
margin-top: 0;
|
||||
}
|
||||
|
||||
.release-container {
|
||||
position: relative;
|
||||
font-family: "Montserrat", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif;
|
||||
}
|
||||
13
assets/css/releases/4.3.noscript.scss
Normal file
@@ -0,0 +1,13 @@
|
||||
---
|
||||
---
|
||||
|
||||
#download-download {
|
||||
.release-card-media {
|
||||
.release-platform {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
margin: 0 auto 40px;
|
||||
}
|
||||
}
|
||||
}
|
||||
1378
assets/css/releases/4.3.scss
Normal file
BIN
assets/fonts/Montserrat-Italic-VariableFont_wght.ttf
Normal file
BIN
assets/fonts/Montserrat-Italic-VariableFont_wght.woff2
Normal file
BIN
assets/fonts/Montserrat-VariableFont_wght.ttf
Normal file
BIN
assets/fonts/Montserrat-VariableFont_wght.woff2
Normal file
BIN
assets/fonts/codicon.ttf
Normal file
BIN
assets/fonts/godot.woff2
Normal file
BIN
assets/fonts/materialsymbolsoutlined.woff2
Normal file
85
assets/js/modules/detect-browser.mjs
Normal file
@@ -0,0 +1,85 @@
|
||||
// https://github.com/julienetie/detect-browser
|
||||
|
||||
const navigatorErrorMessage = 'Could not find `userAgent` or `userAgentData` window.navigator properties to set `os`, `browser` and `version`'
|
||||
const removeExcessMozillaAndVersion = /^mozilla\/\d\.\d\W/
|
||||
const browserPattern = /(\w+)\/(\d+\.\d+(?:\.\d+)?(?:\.\d+)?)/g
|
||||
const engineAndVersionPattern = /^(ver|cri|gec)/
|
||||
const brandList = ['chrome', 'opera', 'safari', 'edge', 'firefox']
|
||||
const unknown = 'Unknown'
|
||||
const empty = ''
|
||||
const { isArray } = Array
|
||||
let userAgentData = window.navigator.userAgentData
|
||||
let userAgent = window.navigator.userAgent
|
||||
|
||||
const mobiles = {
|
||||
iphone: /iphone/,
|
||||
ipad: /ipad|macintosh/,
|
||||
android: /android/
|
||||
}
|
||||
|
||||
const desktops = {
|
||||
windows: /win/,
|
||||
mac: /macintosh/,
|
||||
linux: /linux/
|
||||
}
|
||||
|
||||
const detectPlatform = (customUserAgent, customUserAgentData) => {
|
||||
// Use a provided UA string instead of the browser's UA
|
||||
userAgent = typeof customUserAgent === 'string' ? customUserAgent : userAgent
|
||||
|
||||
// Use a provided UA data string instead of the browser's UA data
|
||||
userAgentData = typeof customUserAgentData === 'string' ? customUserAgentData : userAgentData
|
||||
|
||||
if (userAgent) {
|
||||
const ua = userAgent.toLowerCase().replace(removeExcessMozillaAndVersion, empty)
|
||||
|
||||
// Determine the operating system.
|
||||
const mobileOS = Object.keys(mobiles).find(os => mobiles[os].test(ua) && window.navigator.maxTouchPoints >= 1)
|
||||
const desktopOS = Object.keys(desktops).find(os => desktops[os].test(ua))
|
||||
const os = mobileOS || desktopOS
|
||||
|
||||
// Extract browser and version information.
|
||||
const browserTest = ua.match(browserPattern)
|
||||
const versionRegex = /version\/(\d+(\.\d+)*)/
|
||||
const safariVersion = ua.match(versionRegex)
|
||||
const saVesion = isArray(safariVersion) ? safariVersion[1] : null
|
||||
const browserOffset = browserTest && (browserTest.length > 2 && !(engineAndVersionPattern.test(browserTest[1])) ? 1 : 0)
|
||||
const browserResult = browserTest && browserTest[browserTest.length - 1 - (browserOffset || 0)].split('/')
|
||||
const browser = browserResult && browserResult[0]
|
||||
const version = saVesion ? saVesion : browserResult && browserResult[1]
|
||||
|
||||
return { os, browser, version }
|
||||
} else if (userAgentData) {
|
||||
const os = userAgentData.platform.toLowerCase()
|
||||
let platformData
|
||||
|
||||
// Extract platform brand and version information.
|
||||
for (const agentBrand of userAgentData.brands) {
|
||||
const agentBrandEntry = agentBrand.brand.toLowerCase()
|
||||
const foundBrand = brandList.find(brand => { //eslint-disable-line
|
||||
if (agentBrandEntry.includes(brand)) {
|
||||
return brand
|
||||
}
|
||||
})
|
||||
if (foundBrand) {
|
||||
platformData = { browser: foundBrand, version: agentBrand.version }
|
||||
break
|
||||
}
|
||||
}
|
||||
const brandVersionData = platformData || { browser: unknown, version: unknown }
|
||||
return { os, ...brandVersionData }
|
||||
} else {
|
||||
// Log error message if there's a problem.
|
||||
console
|
||||
.error(navigatorErrorMessage)
|
||||
|
||||
return {
|
||||
// Ignore the VSCode strikethough. Disable linting line if necessary. This is just a fallback
|
||||
os: navigator.platform || unknown,
|
||||
browser: unknown,
|
||||
version: unknown
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
export default detectPlatform
|
||||
26
assets/js/modules/gsap@3.12.5.min.mjs
Normal file
18
assets/js/modules/gsap@3.12.5_ScrollTrigger.min.mjs
Normal file
338
assets/js/releases/4.3.mjs
Normal file
@@ -0,0 +1,338 @@
|
||||
// GSAP for animations.
|
||||
import { gsap } from "../modules/gsap@3.12.5.min.mjs"
|
||||
import { ScrollTrigger } from "../modules/gsap@3.12.5_ScrollTrigger.min.mjs"
|
||||
import detectPlatform from "../modules/detect-browser.mjs"
|
||||
|
||||
gsap.registerPlugin(ScrollTrigger);
|
||||
|
||||
// Release numbers.
|
||||
const RELEASE_NUMBERS_INITIAL_DELAY_S = 1;
|
||||
const RELEASE_NUMBERS_DURATION_S = 1;
|
||||
const RELEASE_NUMBERS_EASE_NAME = "power2.out";
|
||||
const RELEASE_NUMBERS_MAX_BAR_WIDTH_PX = 200;
|
||||
|
||||
const releaseNumbersEase = gsap.parseEase(RELEASE_NUMBERS_EASE_NAME);
|
||||
const numberFormat = new Intl.NumberFormat("en-US");
|
||||
|
||||
for (const el of ["commits", "contributors"]) {
|
||||
const timeline = gsap.timeline();
|
||||
const lines = gsap.utils.toArray(`.release-header .header-numbers-${el} .header-numbers-line`).reverse();
|
||||
for (let i = 0; i < lines.length; i++) {
|
||||
const line = lines[i];
|
||||
const localTimeline = gsap.timeline();
|
||||
localTimeline.to(line.querySelector(".bar"), {
|
||||
delay: i == 0
|
||||
? RELEASE_NUMBERS_INITIAL_DELAY_S
|
||||
: 0,
|
||||
duration: RELEASE_NUMBERS_DURATION_S,
|
||||
ease: RELEASE_NUMBERS_EASE_NAME,
|
||||
width: `${(Number(line.dataset.value) / Number(line.dataset.max)) * RELEASE_NUMBERS_MAX_BAR_WIDTH_PX}px`,
|
||||
onUpdate: () => {
|
||||
line.querySelector(".number").innerText = numberFormat.format(
|
||||
Math.round(releaseNumbersEase(localTimeline.progress()) * Number(line.dataset.value))
|
||||
);
|
||||
},
|
||||
onComplete: () => {
|
||||
line.querySelector(".number").innerText = numberFormat.format(Number(line.dataset.value));
|
||||
}
|
||||
});
|
||||
timeline.add(localTimeline);
|
||||
|
||||
// Set commits to 0
|
||||
line.querySelector(".number").innerText = "0";
|
||||
}
|
||||
}
|
||||
|
||||
// Add a scrolling effect to each card and title.
|
||||
const windowHeight = window.innerHeight;
|
||||
/** @type {HTMLDivElement[]} */
|
||||
const elements = Array.from(gsap.utils.toArray(".release-content .section .release-cards .release-card, .release-content .section .section-title"));
|
||||
for (const element of elements) {
|
||||
if (element.getBoundingClientRect().top < windowHeight) {
|
||||
continue;
|
||||
}
|
||||
|
||||
const timeline = gsap.timeline({
|
||||
scrollTrigger: {
|
||||
trigger: element,
|
||||
start: "top bottom",
|
||||
}
|
||||
});
|
||||
timeline.from(element, {
|
||||
y: "+=50",
|
||||
duration: 0.5,
|
||||
opacity: 0
|
||||
});
|
||||
}
|
||||
|
||||
// Hide downloads that aren't for the user's platform.
|
||||
const platformData = detectPlatform(navigator.userAgent, navigator.userAgentData);
|
||||
let platformName = "windows";
|
||||
switch (platformData.os) {
|
||||
case "mac":
|
||||
case "iphone":
|
||||
case "ipad": {
|
||||
platformName = "macos";
|
||||
} break;
|
||||
|
||||
case "linux": {
|
||||
platformName = "linux";
|
||||
} break;
|
||||
|
||||
case "android": {
|
||||
platformName = "android";
|
||||
} break;
|
||||
|
||||
case "windows":
|
||||
default:
|
||||
break;
|
||||
}
|
||||
const releasePlatformContainer = document.querySelector(".release-platform-container");
|
||||
if (releasePlatformContainer != null) {
|
||||
const releasePlatform = releasePlatformContainer.querySelector(`.release-platform-${platformName}`);
|
||||
if (releasePlatform != null) {
|
||||
releasePlatform.classList.add("active");
|
||||
}
|
||||
}
|
||||
|
||||
// Rename "Export templates and other downloads" to "More downloads"
|
||||
const downloadOther = document.querySelector(".card-download-other");
|
||||
if (downloadOther != null) {
|
||||
downloadOther.textContent = "More downloads";
|
||||
}
|
||||
|
||||
// Add relative weight based on author data
|
||||
const authors = Array.from(document.querySelectorAll("#special-thanks-release-authors .release-card-authors .release-card-author"));
|
||||
let max_prs = 0;
|
||||
for (const author of authors) {
|
||||
max_prs = Math.max(max_prs, Number(author.dataset.prs));
|
||||
}
|
||||
const scales = new Array(5);
|
||||
for (let i = scales.length - 1; i >= 0; i--) {
|
||||
if (i + 1 == scales.length) {
|
||||
scales[i] = Math.floor(max_prs / 2);
|
||||
} else {
|
||||
scales[i] = Math.floor(scales[i + 1] / 2);
|
||||
}
|
||||
}
|
||||
|
||||
for (const author of authors) {
|
||||
const prs = Number(author.dataset.prs);
|
||||
for (let i = 0; i < scales.length; i++) {
|
||||
if (prs >= scales[i]) {
|
||||
if (i + 1 == scales.length) {
|
||||
author.classList.add(`size-${i + 1}`);
|
||||
break;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
if (i === 0) {
|
||||
break;
|
||||
}
|
||||
author.classList.add(`size-${i + 1}`);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
// Links and contributors.
|
||||
const cLinks = Array.from(document.querySelectorAll(".c-link"));
|
||||
for (const cLink of cLinks) {
|
||||
if (cLink.dataset.readMore != null) {
|
||||
const cLinkA = cLink.appendChild(document.createElement("a"));
|
||||
cLinkA.href = cLink.dataset.readMore;
|
||||
cLinkA.classList.add("c-link-a");
|
||||
cLinkA.textContent = "Read more";
|
||||
cLinkA.target = "_blank";
|
||||
}
|
||||
|
||||
if (cLink.dataset.contributors) {
|
||||
let parentId = "";
|
||||
let parent = cLink.parentElement;
|
||||
while (parent != document.body) {
|
||||
if (parent.classList.contains("release-card")) {
|
||||
parentId = parent.id;
|
||||
break;
|
||||
}
|
||||
parent = parent.parentElement;
|
||||
}
|
||||
const contributorsId = `${parentId}-contributors`;
|
||||
|
||||
const contributorsReducer = (previousValue, currentValue, currentIndex, array) => {
|
||||
if (currentIndex === 0) {
|
||||
return `${previousValue} ${currentValue}`;
|
||||
} else if (currentIndex < array.length - 1) {
|
||||
return `${previousValue}, ${currentValue}`;
|
||||
} else if (currentIndex === 1 && array.length === 2) {
|
||||
return `${previousValue} and ${currentValue}`;
|
||||
}
|
||||
return `${previousValue}, and ${currentValue}`;
|
||||
};
|
||||
|
||||
/** @type {String[]} */
|
||||
const contributors = cLink.dataset.contributors.split(",");
|
||||
const contributorsText = contributors.reduce(contributorsReducer, "Contributed by");
|
||||
const contributorsHtml = contributors.map((val) => {
|
||||
const link = document.createElement("a");
|
||||
link.href = `https://github.com/${val}`;
|
||||
link.target = "_blank";
|
||||
link.textContent = val;
|
||||
return link.outerHTML;
|
||||
}).reduce(contributorsReducer, "Contributed by");
|
||||
|
||||
const button = cLink.appendChild(document.createElement("button"));
|
||||
button.classList.add("c-link-popover-button");
|
||||
const span = button.appendChild(document.createElement("span"));
|
||||
if (contributors.length === 1) {
|
||||
span.textContent = "person";
|
||||
} else if (contributors.length === 2) {
|
||||
span.textContent = "group";
|
||||
} else {
|
||||
span.textContent = "groups";
|
||||
}
|
||||
span.classList.add("material-symbols-outlined");
|
||||
span.style.transform = "translateY(5px)";
|
||||
button.title = contributorsText;
|
||||
button.setAttribute("popovertarget", contributorsId);
|
||||
|
||||
const popover = cLink.appendChild(document.createElement("div"));
|
||||
popover.classList.add("c-link-popover");
|
||||
popover.id = contributorsId;
|
||||
popover.setAttribute("popover", "");
|
||||
popover.innerHTML = contributorsHtml;
|
||||
}
|
||||
}
|
||||
|
||||
// Popovers.
|
||||
let popoverAnimationFrame = 0;
|
||||
|
||||
/** @type {(invoker: HTMLElement, popover: HTMLElement) => { x: number, y: number }} */
|
||||
function computePosition(invoker, popover) {
|
||||
const invokerRect = invoker.getBoundingClientRect();
|
||||
const popoverRect = popover.getBoundingClientRect();
|
||||
const windowSize = {
|
||||
width: window.innerWidth,
|
||||
height: window.innerHeight
|
||||
};
|
||||
const padding = 10;
|
||||
const popoverPosition = {
|
||||
x: invokerRect.x - (popoverRect.width / 2),
|
||||
y: invokerRect.y - popoverRect.height - padding,
|
||||
};
|
||||
|
||||
popoverPosition.x = Math.min(Math.max(popoverPosition.x, 0), windowSize.width - popoverRect.width);
|
||||
if (popoverPosition.y < 0) {
|
||||
popoverPosition.y = invokerRect.y + invokerRect.height + padding;
|
||||
}
|
||||
|
||||
return popoverPosition;
|
||||
}
|
||||
|
||||
/** @type {(event: ToggleEvent) => void} */
|
||||
function positionPopover(event) {
|
||||
if (event.newState !== "open") {
|
||||
cancelAnimationFrame(popoverAnimationFrame);
|
||||
popoverAnimationFrame = 0;
|
||||
return;
|
||||
}
|
||||
const popover = event.target;
|
||||
const invoker = document.querySelector(`[popovertarget="${popover.getAttribute("id")}"`);
|
||||
const { x, y } = computePosition(invoker, popover);
|
||||
Object.assign(popover.style, {
|
||||
left: `${x}px`,
|
||||
top: `${y}px`,
|
||||
});
|
||||
|
||||
if (popoverAnimationFrame > 0) {
|
||||
cancelAnimationFrame(popoverAnimationFrame);
|
||||
}
|
||||
|
||||
const updatePopover = () => {
|
||||
const { x, y } = computePosition(invoker, popover);
|
||||
Object.assign(popover.style, {
|
||||
left: `${x}px`,
|
||||
top: `${y}px`,
|
||||
});
|
||||
popoverAnimationFrame = requestAnimationFrame(updatePopover);
|
||||
};
|
||||
popoverAnimationFrame = requestAnimationFrame(updatePopover);
|
||||
}
|
||||
|
||||
const popovers = document.querySelectorAll("[popover]");
|
||||
for (const popover of popovers) {
|
||||
popover.addEventListener("toggle", positionPopover);
|
||||
}
|
||||
|
||||
// Lazy-load videos
|
||||
const lazyVideos = Array.from(document.querySelectorAll("video.lazy"));
|
||||
const lazyVideoObserver = new IntersectionObserver((entries, observer) => {
|
||||
for (const entry of entries) {
|
||||
if (!entry.isIntersecting) {
|
||||
continue;
|
||||
}
|
||||
|
||||
for (var entryChildElement of entry.target.children) {
|
||||
if (typeof entryChildElement.tagName === "string" && entryChildElement.tagName === "SOURCE") {
|
||||
entryChildElement.src = entryChildElement.dataset.src;
|
||||
}
|
||||
}
|
||||
|
||||
entry.target.load();
|
||||
entry.target.classList.remove("lazy");
|
||||
observer.unobserve(entry.target);
|
||||
}
|
||||
});
|
||||
for (const lazyVideo of lazyVideos) {
|
||||
lazyVideoObserver.observe(lazyVideo);
|
||||
}
|
||||
|
||||
// Show/hide the scroll-to-top button
|
||||
const linksElement = document.querySelector("#links");
|
||||
const scrollToTopElement = document.querySelector("#scroll-to-top");
|
||||
let scrollToTopTween = null;
|
||||
let scrollState = "";
|
||||
const showScrollToTop = () => {
|
||||
if (scrollState === "show") {
|
||||
return;
|
||||
}
|
||||
scrollState = "show";
|
||||
if (scrollToTopTween != null) {
|
||||
scrollToTopTween.kill();
|
||||
}
|
||||
scrollToTopElement.style.display = "block";
|
||||
scrollToTopTween = gsap.to(scrollToTopElement, {
|
||||
opacity: 1,
|
||||
duration: 0.5,
|
||||
});
|
||||
};
|
||||
const hideScrollToTop = () => {
|
||||
if (scrollState === "hide") {
|
||||
return;
|
||||
}
|
||||
scrollState = "hide";
|
||||
if (scrollToTopTween != null) {
|
||||
scrollToTopTween.kill();
|
||||
}
|
||||
scrollToTopTween = gsap.to(scrollToTopElement, {
|
||||
opacity: 0,
|
||||
duration: 0.5,
|
||||
onComplete: () => {
|
||||
scrollToTopElement.style.display = "none";
|
||||
}
|
||||
});
|
||||
};
|
||||
const scrollToTopObserver = new IntersectionObserver((entries, observer) => {
|
||||
// requestAnimationFrame(animationFrameHandler);
|
||||
const entry = entries[0];
|
||||
if (entry.isIntersecting) {
|
||||
hideScrollToTop();
|
||||
} else {
|
||||
const rect = linksElement.getBoundingClientRect();
|
||||
console.log(rect);
|
||||
if (rect.y > window.innerHeight) {
|
||||
hideScrollToTop();
|
||||
} else {
|
||||
showScrollToTop();
|
||||
}
|
||||
}
|
||||
});
|
||||
scrollToTopObserver.observe(linksElement);
|
||||
31
collections/_article/godot-4-3-a-shared-effort.md
Normal file
@@ -0,0 +1,31 @@
|
||||
---
|
||||
title: "Godot 4.3, a shared effort"
|
||||
excerpt: "With over 3,500 commits authored by over 500 contributors, the latest Godot Engine release comes packed full of new features and improvements."
|
||||
categories: ["release"]
|
||||
author: "Godot contributors"
|
||||
image: /storage/blog/covers/godot-4-3-a-shared-effort.webp
|
||||
date: 2024-08-15 11:00:00
|
||||
redirect_to:
|
||||
- /releases/4.3/
|
||||
---
|
||||
|
||||
This release we decided to do things a little bit differently. Instead of making a giant blog post, we have decided to make a giant [web page](/releases/4.3/) instead! Inspired by Blender, we have decided to create a stable page on the website that features releases so new users can quickly learn about the latest version of the engine.
|
||||
|
||||
So please take a look over at the [4.3 release page](/releases/4.3/)!
|
||||
|
||||
Or grab 4.3 here directly and get started.
|
||||
|
||||
{% include articles/download_card.html version="4.3" release="stable" article=page %}
|
||||
|
||||
**Standard build** includes support for GDScript and GDExtension.
|
||||
|
||||
**.NET build** (marked as `mono`) includes support for C#, as well as GDScript and GDExtension.
|
||||
- See also [C# platform support](https://docs.godotengine.org/en/latest/tutorials/scripting/c_sharp/index.html#c-platform-support).
|
||||
|
||||
If you want to test the new Windows ARM64 builds, you will now find them listed in the usual download page.
|
||||
|
||||
## Support
|
||||
|
||||
Godot is a non-profit, open source game engine developed by hundreds of contributors on their free time, as well as a handful of part or full-time developers hired thanks to [generous donations from the Godot community](https://fund.godotengine.org/). A big thank you to everyone who has contributed [their time](https://github.com/godotengine/godot/blob/master/AUTHORS.md) or [their financial support](https://github.com/godotengine/godot/blob/master/DONORS.md) to the project!
|
||||
|
||||
If you'd like to support the project financially and help us secure our future hires, you can do so using the [Godot Development Fund](https://fund.godotengine.org/) platform managed by [Godot Foundation](https://godot.foundation/). There are also several [alternative ways to donate](/donate) which you may find more suitable.
|
||||
2408
pages/releases/4.3.html
Normal file
BIN
storage/blog/covers/godot-4-3-a-shared-effort.webp
Normal file
|
After Width: | Height: | Size: 84 KiB |
BIN
storage/releases/4.3/images/body-face-tracking.webp
Normal file
|
After Width: | Height: | Size: 25 KiB |
BIN
storage/releases/4.3/images/composition-layers.webp
Normal file
|
After Width: | Height: | Size: 73 KiB |
BIN
storage/releases/4.3/images/depth-fog.webp
Normal file
|
After Width: | Height: | Size: 121 KiB |
BIN
storage/releases/4.3/images/doc-links-2x.webp
Normal file
|
After Width: | Height: | Size: 48 KiB |
BIN
storage/releases/4.3/images/doc-links.webp
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
storage/releases/4.3/images/documentation-internal-links-2x.webp
Normal file
|
After Width: | Height: | Size: 35 KiB |
BIN
storage/releases/4.3/images/documentation-internal-links.webp
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
storage/releases/4.3/images/dotnet-rebuild-notification.webp
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
storage/releases/4.3/images/export-binary-tokens-2x.webp
Normal file
|
After Width: | Height: | Size: 416 KiB |
BIN
storage/releases/4.3/images/export-binary-tokens.webp
Normal file
|
After Width: | Height: | Size: 146 KiB |
BIN
storage/releases/4.3/images/fbx-import-2x.webp
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
storage/releases/4.3/images/fbx-import.webp
Normal file
|
After Width: | Height: | Size: 26 KiB |
BIN
storage/releases/4.3/images/filesystem-editor-bottom.webp
Normal file
|
After Width: | Height: | Size: 166 KiB |
BIN
storage/releases/4.3/images/gdextension-runtime-class.webp
Normal file
|
After Width: | Height: | Size: 122 KiB |
|
After Width: | Height: | Size: 94 KiB |
BIN
storage/releases/4.3/images/improved-ui-ux-project-manager.webp
Normal file
|
After Width: | Height: | Size: 98 KiB |
BIN
storage/releases/4.3/images/interactive-stream-2x.webp
Normal file
|
After Width: | Height: | Size: 400 KiB |
BIN
storage/releases/4.3/images/interactive-stream.webp
Normal file
|
After Width: | Height: | Size: 165 KiB |
BIN
storage/releases/4.3/images/keyframes.webp
Normal file
|
After Width: | Height: | Size: 56 KiB |
BIN
storage/releases/4.3/images/navigation-chunks.webp
Normal file
|
After Width: | Height: | Size: 19 KiB |
BIN
storage/releases/4.3/images/parallax-2d.webp
Normal file
|
After Width: | Height: | Size: 301 KiB |
BIN
storage/releases/4.3/images/physics-interpolation-2d.webp
Normal file
|
After Width: | Height: | Size: 22 KiB |
BIN
storage/releases/4.3/images/pixel-snapping-2d.webp
Normal file
|
After Width: | Height: | Size: 62 KiB |
BIN
storage/releases/4.3/images/premultiplied-alpha.webp
Normal file
|
After Width: | Height: | Size: 63 KiB |
@@ -0,0 +1 @@
|
||||
<svg xmlns="http://www.w3.org/2000/svg" width="510" height="823" fill="none"><g fill="#EFF1F5" opacity=".05"><path d="M-38.155-37c-41.615 9.252-82.783 22.134-121.379 41.56.883 34.08 3.086 66.734 7.552 99.903-14.988 9.603-30.741 17.845-44.741 29.087-14.224 10.943-28.754 21.41-41.634 34.209-25.732-17.02-52.963-33.015-81.02-47.133C-349.62 153.174-377.9 188.304-401 227.615c18.154 28.497 37.626 57.138 55.659 79.474v241.265c.441.003.886.018 1.323.059l147.909 14.262a15.926 15.926 0 0 1 14.358 14.75l4.562 65.291 129.021 9.209 8.886-60.264a15.931 15.931 0 0 1 15.76-13.606h156.049c7.899 0 14.603 5.793 15.755 13.606l8.886 60.264 129.026-9.209 4.557-65.291a15.933 15.933 0 0 1 14.358-14.75l147.851-14.262c.437-.041.876-.054 1.317-.059v-19.253l.064-.016V307.089c20.828-26.22 40.549-55.141 55.659-79.474-23.092-39.311-51.385-74.441-81.628-106.989-28.049 14.118-55.294 30.113-81.025 47.133-12.876-12.799-27.379-23.266-41.624-34.209-13.996-11.242-29.771-19.484-44.731-29.087 4.454-33.169 6.66-65.822 7.547-99.903-38.6-19.426-79.764-32.309-121.4-41.56-16.623 27.938-31.824 58.196-45.064 87.773-15.7-2.624-31.472-3.596-47.265-3.784v-.027c-.11 0-.213.027-.307.027-.098 0-.204-.027-.302-.027v.027c-15.822.188-31.583 1.16-47.287 3.784C-6.317 21.196-21.507-9.062-38.155-37Zm-117.018 352.938c49.233 0 89.138 39.874 89.138 89.091 0 49.248-39.905 89.143-89.138 89.143-49.208 0-89.122-39.895-89.122-89.143 0-49.217 39.914-89.091 89.122-89.091Zm419.356 0c49.204 0 89.112 39.874 89.112 89.091 0 49.248-39.908 89.143-89.112 89.143-49.24 0-89.143-39.895-89.143-89.143 0-49.217 39.903-89.091 89.143-89.091Zm-209.69 52.134c15.846 0 28.72 11.692 28.72 26.076v82.057c0 14.396-12.874 26.075-28.72 26.075-15.848 0-28.69-11.679-28.69-26.075v-82.057c0-14.384 12.842-26.076 28.69-26.076Z"/><path d="m321.587 593.09-4.581 65.639c-.552 7.911-6.845 14.208-14.756 14.776l-157.549 11.242a15.3 15.3 0 0 1-1.149.04c-7.829 0-14.584-5.745-15.74-13.607l-9.035-61.271H-9.776l-9.035 61.271c-1.213 8.246-8.585 14.175-16.889 13.567l-157.549-11.242c-7.911-.568-14.204-6.865-14.756-14.776l-4.581-65.639-132.998-12.823c.061 14.294.245 29.953.245 33.071 0 140.464 178.185 207.979 399.568 208.755h.543c221.382-.776 399.507-68.291 399.507-208.755 0-3.176.192-18.769.257-33.071L321.587 593.09ZM-87.484 410.315c0 32.666-26.476 59.141-59.166 59.141-32.675 0-59.167-26.475-59.167-59.141 0-32.667 26.492-59.167 59.167-59.167 32.69 0 59.166 26.5 59.166 59.167ZM196.49 410.315c0 32.666 26.468 59.141 59.134 59.141 32.699 0 59.166-26.475 59.166-59.141 0-32.667-26.467-59.167-59.166-59.167-32.666 0-59.134 26.5-59.134 59.167Z"/></g></svg>
|
||||
|
After Width: | Height: | Size: 2.5 KiB |
1
storage/releases/4.3/images/release-logo.svg
Normal file
|
After Width: | Height: | Size: 18 KiB |
BIN
storage/releases/4.3/images/scene-discovery.webp
Normal file
|
After Width: | Height: | Size: 41 KiB |
BIN
storage/releases/4.3/images/skeleton-import-settings-2x.webp
Normal file
|
After Width: | Height: | Size: 286 KiB |
BIN
storage/releases/4.3/images/skeleton-import-settings.webp
Normal file
|
After Width: | Height: | Size: 271 KiB |
BIN
storage/releases/4.3/images/syntax-highlight-copy-button-2x.webp
Normal file
|
After Width: | Height: | Size: 27 KiB |
BIN
storage/releases/4.3/images/syntax-highlight-copy-button.webp
Normal file
|
After Width: | Height: | Size: 58 KiB |
BIN
storage/releases/4.3/images/threading-improvements-2x.webp
Normal file
|
After Width: | Height: | Size: 141 KiB |
BIN
storage/releases/4.3/images/threading-improvements.webp
Normal file
|
After Width: | Height: | Size: 54 KiB |
BIN
storage/releases/4.3/images/tilemaplayer.webp
Normal file
|
After Width: | Height: | Size: 153 KiB |
BIN
storage/releases/4.3/images/visual-shader-overhaul.webp
Normal file
|
After Width: | Height: | Size: 76 KiB |
BIN
storage/releases/4.3/images/web-export-single-threaded-2x.webp
Normal file
|
After Width: | Height: | Size: 65 KiB |
BIN
storage/releases/4.3/images/web-export-single-threaded.webp
Normal file
|
After Width: | Height: | Size: 46 KiB |
BIN
storage/releases/4.3/images/xr-meta-xr-simulator-2x.webp
Normal file
|
After Width: | Height: | Size: 67 KiB |
BIN
storage/releases/4.3/images/xr-meta-xr-simulator.webp
Normal file
|
After Width: | Height: | Size: 38 KiB |