-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathindex.html
More file actions
206 lines (190 loc) · 11.4 KB
/
index.html
File metadata and controls
206 lines (190 loc) · 11.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
---
layout: home
title: Home
description: "VFX Reference Platform - Reference Platform for VFX Software"
---
{% assign current_year = site.current_year %}
{% assign supported_years = "" | split: "" %}
{% assign final_count = 0 %}
{% assign max_finals = site.supported_years_count %}
{% for i in (0..20) %}
{% assign year = current_year | minus: i %}
{% assign year_key = "CY" | append: year %}
{% assign year_data = site.data.platforms[year_key] %}
{% if year_data %}
{% if year_data.status == 'final' %}
{% if final_count < max_finals %}
{% assign supported_years = supported_years | push: year %}
{% assign final_count = final_count | plus: 1 %}
{% endif %}
{% else %}
{% assign supported_years = supported_years | push: year %}
{% endif %}
{% endif %}
{% if final_count >= max_finals %}
{% break %}
{% endif %}
{% endfor %}
<!-- Hero Section -->
<section class="bg-gray-50 dark:bg-gray-800/50 border-b border-gray-200 dark:border-gray-700">
<div class="container mx-auto px-4 max-w-6xl">
<div class="py-16 md:py-24">
<div class="max-w-3xl mx-auto text-center">
<h1 class="text-4xl md:text-5xl font-bold tracking-tight mb-6">
VFX Reference<br>
<span class="text-blue-600 dark:text-blue-400">Platform</span>
</h1>
<p class="text-lg text-gray-600 dark:text-gray-300 leading-relaxed mb-8">
{{ site.hero.subtitle }}
</p>
<div class="flex flex-wrap justify-center gap-4">
<a href="{{ site.hero.cta_primary_url }}" class="inline-flex items-center px-6 py-3 rounded-full bg-blue-600 text-white font-medium hover:bg-blue-700 transition-colors">
{{ site.hero.cta_primary_text }}
</a>
<a href="{{ site.hero.cta_secondary_url }}" class="inline-flex items-center gap-2 px-6 py-3 rounded-full bg-white dark:bg-gray-800 border border-gray-300 dark:border-gray-600 text-gray-700 dark:text-gray-200 font-medium hover:bg-gray-100 dark:hover:bg-gray-700 transition-colors">
{{ site.hero.cta_secondary_text }}
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 6H6a2 2 0 00-2 2v10a2 2 0 002 2h10a2 2 0 002-2v-4M14 4h6m0 0v6m0-6L10 14"/>
</svg>
</a>
</div>
</div>
</div>
</div>
</section>
<!-- Current Status -->
<section class="container mx-auto px-4 max-w-6xl py-12" id="current-status">
<div class="section-heading">
<h2>Current Status</h2>
</div>
<p class="mb-6 text-gray-600 dark:text-gray-300">
The Calendar Year {{ current_year }} (CY{{ current_year }}) Reference Platform is the target for all major software releases in {{ current_year }}.
</p>
{% include status-updates.html limit=4 style="cards" %}
<p class="mt-6 text-center">
<a href="{{ '/platform_history.html#previous-status-updates' | relative_url }}" class="text-base text-blue-600 dark:text-blue-400 hover:underline">
Previous status updates →
</a>
</p>
</section>
<!-- Reference Platform -->
<section class="container mx-auto px-4 max-w-6xl py-12" id="reference-platform">
<div class="section-heading">
<h2>Reference Platform</h2>
</div>
<div class="info-box mb-8">
<div class="flex gap-3">
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400 flex-shrink-0 mt-0.5" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"/>
</svg>
<div>
<p class="text-sm text-gray-700 dark:text-gray-200 mb-2">
Each annual reference platform is designated by the calendar year in which major product releases should be targeting that particular reference.
</p>
<p class="text-sm text-gray-600 dark:text-gray-300 mb-2">
All versions should be considered exact required versions, except for those components where
<span class="whitespace-nowrap text-gray-500">↓↑</span>
indicates that:
</p>
<ul class="list-disc list-inside text-sm text-gray-600 dark:text-gray-300 space-y-1">
<li>For systems (or software) providing the library at runtime, versions should be considered <em>minimum version required.</em></li>
<li>Otherwise, for software building against the library, versions should be considered <em>highest version allowed.</em></li>
</ul>
</div>
</div>
</div>
{% include platform-table.html years=supported_years %}
{% assign oldest_year = supported_years | last | minus: 1 %}
<p class="mt-6 text-center">
<a href="{{ '/platform_history.html' | relative_url }}#CY{{ oldest_year }}" class="text-base text-blue-600 dark:text-blue-400 hover:underline">
View Earlier Platforms →
</a>
</p>
</section>
<!-- Support Guidance -->
<section class="container mx-auto px-4 max-w-6xl py-12" id="support-guidance">
<div class="section-heading">
<h2>Support Guidance</h2>
</div>
<div class="grid md:grid-cols-2 gap-6">
<!-- Support Window card -->
<div class="support-card border border-gray-200 dark:border-gray-700 rounded-lg p-5 bg-white dark:bg-gray-800/50">
<div class="flex items-center gap-3 mb-4">
<div class="w-10 h-10 rounded-lg bg-blue-50 dark:bg-blue-900/30 flex items-center justify-center">
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"/>
</svg>
</div>
<h3 class="text-lg font-semibold text-gray-900 dark:text-gray-100">Support Window</h3>
</div>
<p class="text-sm text-gray-600 dark:text-gray-300 leading-relaxed">
Providers of software libraries focused on VFX and animation content creation should aim to support their releases for the current calendar year and the three preceding years with compatible updates. Studios and end users should have no expectation of support for older libraries.
</p>
</div>
<!-- Best Practices card -->
<div class="support-card border border-gray-200 dark:border-gray-700 rounded-lg p-5 bg-white dark:bg-gray-800/50">
<div class="flex items-center gap-3 mb-4">
<div class="w-10 h-10 rounded-lg bg-blue-50 dark:bg-blue-900/30 flex items-center justify-center">
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.066 2.573c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.573 1.066c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.066-2.573c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"/>
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 12a3 3 0 11-6 0 3 3 0 016 0z"/>
</svg>
</div>
<h3 class="text-lg font-semibold text-gray-900 dark:text-gray-100">Best Practices</h3>
</div>
<p class="text-sm text-gray-600 dark:text-gray-300 leading-relaxed">
The VFX Reference Platform strongly recommends open source project maintainers provide a level of support described by the <a href="https://bestpractices.coreinfrastructure.org/en/criteria" class="text-blue-600 dark:text-blue-400 hover:underline">FLOSS Best Practices Criteria</a>, which is already a requirement for all Academy Software Foundation projects.
</p>
</div>
</div>
</section>
<!-- Useful Links -->
<section class="container mx-auto px-4 max-w-6xl py-12" id="useful-links">
<div class="section-heading">
<h2>Useful Links</h2>
</div>
<div class="useful-links-grid">
{% for link in site.data.useful_links %}
<a href="{{ link.url }}" class="group border border-gray-200 dark:border-gray-700 rounded-lg p-5 bg-white dark:bg-gray-800/50 hover:border-blue-300 dark:hover:border-blue-600 hover:shadow-sm transition-all">
<div class="flex items-start gap-3">
<div class="w-9 h-9 rounded-lg bg-blue-50 dark:bg-blue-900/30 flex items-center justify-center flex-shrink-0 mt-0.5">
{% if link.icon == "chart" %}
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"/>
</svg>
{% elsif link.icon == "python" %}
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"/>
</svg>
{% elsif link.icon == "container" %}
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"/>
</svg>
{% elsif link.icon == "grid" %}
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2V6zM14 6a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2V6zM4 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2H6a2 2 0 01-2-2v-2zM14 16a2 2 0 012-2h2a2 2 0 012 2v2a2 2 0 01-2 2h-2a2 2 0 01-2-2v-2z"/>
</svg>
{% elsif link.icon == "matrix" %}
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10h18M3 14h18M10 3v18M14 3v18"/>
</svg>
{% else %}
<svg class="w-5 h-5 text-blue-600 dark:text-blue-400" fill="none" stroke="currentColor" viewBox="0 0 24 24" aria-hidden="true">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"/>
</svg>
{% endif %}
</div>
<div>
<h3 class="text-sm font-semibold text-gray-900 dark:text-gray-100 group-hover:text-blue-600 dark:group-hover:text-blue-400 transition-colors">
{{ link.title }}
</h3>
<p class="text-sm text-gray-500 dark:text-gray-400 mt-1">
{{ link.description }}
</p>
</div>
</div>
</a>
{% endfor %}
</div>
</section>
{% include note-popover-content.html %}