Initial commit: add all skills files
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
7
.claude/settings.local.json
Normal file
7
.claude/settings.local.json
Normal file
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"permissions": {
|
||||
"allow": [
|
||||
"Bash(cd:*)"
|
||||
]
|
||||
}
|
||||
}
|
||||
782
android-native-dev/SKILL.md
Normal file
782
android-native-dev/SKILL.md
Normal file
@@ -0,0 +1,782 @@
|
||||
---
|
||||
name: android-native-dev
|
||||
description: Android native application development and UI design guide. Covers Material Design 3, Kotlin/Compose development, project configuration, accessibility, and build troubleshooting. Read this before Android native application development.
|
||||
license: MIT
|
||||
metadata:
|
||||
version: "1.0.0"
|
||||
category: mobile
|
||||
sources:
|
||||
- Material Design 3 Guidelines (material.io)
|
||||
- Android Developer Documentation (developer.android.com)
|
||||
- Google Play Quality Guidelines
|
||||
- WCAG Accessibility Guidelines
|
||||
---
|
||||
|
||||
## 1. Project Scenario Assessment
|
||||
|
||||
Before starting development, assess the current project state:
|
||||
|
||||
| Scenario | Characteristics | Approach |
|
||||
|----------|-----------------|----------|
|
||||
| **Empty Directory** | No files present | Full initialization required, including Gradle Wrapper |
|
||||
| **Has Gradle Wrapper** | `gradlew` and `gradle/wrapper/` exist | Use `./gradlew` directly for builds |
|
||||
| **Android Studio Project** | Complete project structure, may lack wrapper | Check wrapper, run `gradle wrapper` if needed |
|
||||
| **Incomplete Project** | Partial files present | Check missing files, complete configuration |
|
||||
|
||||
**Key Principles**:
|
||||
- Before writing business logic, ensure `./gradlew assembleDebug` succeeds
|
||||
- If `gradle.properties` is missing, create it first and configure AndroidX
|
||||
|
||||
### 1.1 Required Files Checklist
|
||||
|
||||
```
|
||||
MyApp/
|
||||
├── gradle.properties # Configure AndroidX and other settings
|
||||
├── settings.gradle.kts
|
||||
├── build.gradle.kts # Root level
|
||||
├── gradle/wrapper/
|
||||
│ └── gradle-wrapper.properties
|
||||
├── app/
|
||||
│ ├── build.gradle.kts # Module level
|
||||
│ └── src/main/
|
||||
│ ├── AndroidManifest.xml
|
||||
│ ├── java/com/example/myapp/
|
||||
│ │ └── MainActivity.kt
|
||||
│ └── res/
|
||||
│ ├── values/
|
||||
│ │ ├── strings.xml
|
||||
│ │ ├── colors.xml
|
||||
│ │ └── themes.xml
|
||||
│ └── mipmap-*/ # App icons
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 2. Project Configuration
|
||||
|
||||
### 2.1 gradle.properties
|
||||
|
||||
```properties
|
||||
# Required configuration
|
||||
android.useAndroidX=true
|
||||
android.enableJetifier=true
|
||||
|
||||
# Build optimization
|
||||
org.gradle.parallel=true
|
||||
kotlin.code.style=official
|
||||
|
||||
# JVM memory settings (adjust based on project size)
|
||||
# Small projects: 2048m, Medium: 4096m, Large: 8192m+
|
||||
# org.gradle.jvmargs=-Xmx4096m -Dfile.encoding=UTF-8
|
||||
```
|
||||
|
||||
> **Note**: If you encounter `OutOfMemoryError` during build, increase `-Xmx` value. Large projects with many dependencies may require 8GB or more.
|
||||
|
||||
### 2.2 Dependency Declaration Standards
|
||||
|
||||
```kotlin
|
||||
dependencies {
|
||||
// Use BOM to manage Compose versions
|
||||
implementation(platform("androidx.compose:compose-bom:2024.02.00"))
|
||||
implementation("androidx.compose.ui:ui")
|
||||
implementation("androidx.compose.material3:material3")
|
||||
|
||||
// Activity & ViewModel
|
||||
implementation("androidx.activity:activity-compose:1.8.2")
|
||||
implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0")
|
||||
}
|
||||
```
|
||||
|
||||
### 2.3 Build Variants & Product Flavors
|
||||
|
||||
Product Flavors allow you to create different versions of your app (e.g., free/paid, dev/staging/prod).
|
||||
|
||||
**Configuration in app/build.gradle.kts**:
|
||||
|
||||
```kotlin
|
||||
android {
|
||||
// Define flavor dimensions
|
||||
flavorDimensions += "environment"
|
||||
|
||||
productFlavors {
|
||||
create("dev") {
|
||||
dimension = "environment"
|
||||
applicationIdSuffix = ".dev"
|
||||
versionNameSuffix = "-dev"
|
||||
|
||||
// Different config values per flavor
|
||||
buildConfigField("String", "API_BASE_URL", "\"https://dev-api.example.com\"")
|
||||
buildConfigField("Boolean", "ENABLE_LOGGING", "true")
|
||||
|
||||
// Different resources
|
||||
resValue("string", "app_name", "MyApp Dev")
|
||||
}
|
||||
|
||||
create("staging") {
|
||||
dimension = "environment"
|
||||
applicationIdSuffix = ".staging"
|
||||
versionNameSuffix = "-staging"
|
||||
|
||||
buildConfigField("String", "API_BASE_URL", "\"https://staging-api.example.com\"")
|
||||
buildConfigField("Boolean", "ENABLE_LOGGING", "true")
|
||||
resValue("string", "app_name", "MyApp Staging")
|
||||
}
|
||||
|
||||
create("prod") {
|
||||
dimension = "environment"
|
||||
// No suffix for production
|
||||
|
||||
buildConfigField("String", "API_BASE_URL", "\"https://api.example.com\"")
|
||||
buildConfigField("Boolean", "ENABLE_LOGGING", "false")
|
||||
resValue("string", "app_name", "MyApp")
|
||||
}
|
||||
}
|
||||
|
||||
buildTypes {
|
||||
debug {
|
||||
isDebuggable = true
|
||||
isMinifyEnabled = false
|
||||
}
|
||||
release {
|
||||
isDebuggable = false
|
||||
isMinifyEnabled = true
|
||||
proguardFiles(getDefaultProguardFile("proguard-android-optimize.txt"), "proguard-rules.pro")
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
**Build Variant Naming**: `{flavor}{BuildType}` → e.g., `devDebug`, `prodRelease`
|
||||
|
||||
**Gradle Build Commands**:
|
||||
|
||||
```bash
|
||||
# List all available build variants
|
||||
./gradlew tasks --group="build"
|
||||
|
||||
# Build specific variant (flavor + buildType)
|
||||
./gradlew assembleDevDebug # Dev flavor, Debug build
|
||||
./gradlew assembleStagingDebug # Staging flavor, Debug build
|
||||
./gradlew assembleProdRelease # Prod flavor, Release build
|
||||
|
||||
# Build all variants of a specific flavor
|
||||
./gradlew assembleDev # All Dev variants (debug + release)
|
||||
./gradlew assembleProd # All Prod variants
|
||||
|
||||
# Build all variants of a specific build type
|
||||
./gradlew assembleDebug # All flavors, Debug build
|
||||
./gradlew assembleRelease # All flavors, Release build
|
||||
|
||||
# Install specific variant to device
|
||||
./gradlew installDevDebug
|
||||
./gradlew installProdRelease
|
||||
|
||||
# Build and install in one command
|
||||
./gradlew installDevDebug && adb shell am start -n com.example.myapp.dev/.MainActivity
|
||||
```
|
||||
|
||||
**Access BuildConfig in Code**:
|
||||
|
||||
> **Note**: Starting from AGP 8.0, `BuildConfig` is no longer generated by default. You must explicitly enable it in your `build.gradle.kts`:
|
||||
> ```kotlin
|
||||
> android {
|
||||
> buildFeatures {
|
||||
> buildConfig = true
|
||||
> }
|
||||
> }
|
||||
> ```
|
||||
|
||||
```kotlin
|
||||
// Use build config values in your code
|
||||
val apiUrl = BuildConfig.API_BASE_URL
|
||||
val isLoggingEnabled = BuildConfig.ENABLE_LOGGING
|
||||
|
||||
if (BuildConfig.DEBUG) {
|
||||
// Debug-only code
|
||||
}
|
||||
```
|
||||
|
||||
**Flavor-Specific Source Sets**:
|
||||
|
||||
```
|
||||
app/src/
|
||||
├── main/ # Shared code for all flavors
|
||||
├── dev/ # Dev-only code and resources
|
||||
│ ├── java/
|
||||
│ └── res/
|
||||
├── staging/ # Staging-only code and resources
|
||||
├── prod/ # Prod-only code and resources
|
||||
├── debug/ # Debug build type code
|
||||
└── release/ # Release build type code
|
||||
```
|
||||
|
||||
**Multiple Flavor Dimensions** (e.g., environment + tier):
|
||||
|
||||
```kotlin
|
||||
android {
|
||||
flavorDimensions += listOf("environment", "tier")
|
||||
|
||||
productFlavors {
|
||||
create("dev") { dimension = "environment" }
|
||||
create("prod") { dimension = "environment" }
|
||||
|
||||
create("free") { dimension = "tier" }
|
||||
create("paid") { dimension = "tier" }
|
||||
}
|
||||
}
|
||||
// Results in: devFreeDebug, devPaidDebug, prodFreeRelease, etc.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 3. Kotlin Development Standards
|
||||
|
||||
### 3.1 Naming Conventions
|
||||
|
||||
| Type | Convention | Example |
|
||||
|------|------------|---------|
|
||||
| Class/Interface | PascalCase | `UserRepository`, `MainActivity` |
|
||||
| Function/Variable | camelCase | `getUserName()`, `isLoading` |
|
||||
| Constant | SCREAMING_SNAKE | `MAX_RETRY_COUNT` |
|
||||
| Package | lowercase | `com.example.myapp` |
|
||||
| Composable | PascalCase | `@Composable fun UserCard()` |
|
||||
|
||||
### 3.2 Code Standards (Important)
|
||||
|
||||
**Null Safety**:
|
||||
```kotlin
|
||||
// ❌ Avoid: Non-null assertion !! (may crash)
|
||||
val name = user!!.name
|
||||
|
||||
// ✅ Recommended: Safe call + default value
|
||||
val name = user?.name ?: "Unknown"
|
||||
|
||||
// ✅ Recommended: let handling
|
||||
user?.let { processUser(it) }
|
||||
```
|
||||
|
||||
**Exception Handling**:
|
||||
```kotlin
|
||||
// ❌ Avoid: Random try-catch in business layer swallowing exceptions
|
||||
fun loadData() {
|
||||
try {
|
||||
val data = api.fetch()
|
||||
} catch (e: Exception) {
|
||||
// Swallowing exception, hard to debug
|
||||
}
|
||||
}
|
||||
|
||||
// ✅ Recommended: Let exceptions propagate, handle at appropriate layer
|
||||
suspend fun loadData(): Result<Data> {
|
||||
return try {
|
||||
Result.success(api.fetch())
|
||||
} catch (e: Exception) {
|
||||
Result.failure(e) // Wrap and return, let caller decide handling
|
||||
}
|
||||
}
|
||||
|
||||
// ✅ Recommended: Unified handling in ViewModel
|
||||
viewModelScope.launch {
|
||||
runCatching { repository.loadData() }
|
||||
.onSuccess { _uiState.value = UiState.Success(it) }
|
||||
.onFailure { _uiState.value = UiState.Error(it.message) }
|
||||
}
|
||||
```
|
||||
|
||||
### 3.3 Threading & Coroutines (Critical)
|
||||
|
||||
**Thread Selection Principles**:
|
||||
|
||||
| Operation Type | Thread | Description |
|
||||
|----------------|--------|-------------|
|
||||
| UI Updates | `Dispatchers.Main` | Update View, State, LiveData |
|
||||
| Network Requests | `Dispatchers.IO` | HTTP calls, API requests |
|
||||
| File I/O | `Dispatchers.IO` | Local storage, database operations |
|
||||
| Compute Intensive | `Dispatchers.Default` | JSON parsing, sorting, encryption |
|
||||
|
||||
**Correct Usage**:
|
||||
```kotlin
|
||||
// In ViewModel
|
||||
viewModelScope.launch {
|
||||
// Default Main thread, can update UI State
|
||||
_uiState.value = UiState.Loading
|
||||
|
||||
// Switch to IO thread for network request
|
||||
val result = withContext(Dispatchers.IO) {
|
||||
repository.fetchData()
|
||||
}
|
||||
|
||||
// Automatically returns to Main thread, update UI
|
||||
_uiState.value = UiState.Success(result)
|
||||
}
|
||||
|
||||
// In Repository (suspend functions should be main-safe)
|
||||
suspend fun fetchData(): Data = withContext(Dispatchers.IO) {
|
||||
api.getData()
|
||||
}
|
||||
```
|
||||
|
||||
**Common Mistakes**:
|
||||
```kotlin
|
||||
// ❌ Wrong: Updating UI on IO thread
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
val data = api.fetch()
|
||||
_uiState.value = data // Crash or warning!
|
||||
}
|
||||
|
||||
// ❌ Wrong: Executing time-consuming operation on Main thread
|
||||
viewModelScope.launch {
|
||||
val data = api.fetch() // Blocking main thread! ANR
|
||||
}
|
||||
|
||||
// ✅ Correct: Fetch on IO, update on Main
|
||||
viewModelScope.launch {
|
||||
val data = withContext(Dispatchers.IO) { api.fetch() }
|
||||
_uiState.value = data
|
||||
}
|
||||
```
|
||||
|
||||
### 3.4 Visibility Rules
|
||||
|
||||
```kotlin
|
||||
// Default is public, declare explicitly when needed
|
||||
class UserRepository { // public
|
||||
private val cache = mutableMapOf<String, User>() // Visible only within class
|
||||
internal fun clearCache() {} // Visible only within module
|
||||
}
|
||||
|
||||
// data class properties are public by default, be careful when used across modules
|
||||
data class User(
|
||||
val id: String, // public
|
||||
val name: String
|
||||
)
|
||||
```
|
||||
|
||||
### 3.5 Common Syntax Pitfalls
|
||||
|
||||
```kotlin
|
||||
// ❌ Wrong: Accessing uninitialized lateinit
|
||||
class MyViewModel : ViewModel() {
|
||||
lateinit var data: String
|
||||
fun process() = data.length // May crash
|
||||
}
|
||||
|
||||
// ✅ Correct: Use nullable or default value
|
||||
class MyViewModel : ViewModel() {
|
||||
var data: String? = null
|
||||
fun process() = data?.length ?: 0
|
||||
}
|
||||
|
||||
// ❌ Wrong: Using return in lambda
|
||||
list.forEach { item ->
|
||||
if (item.isEmpty()) return // Returns from outer function!
|
||||
}
|
||||
|
||||
// ✅ Correct: Use return@forEach
|
||||
list.forEach { item ->
|
||||
if (item.isEmpty()) return@forEach
|
||||
}
|
||||
```
|
||||
|
||||
### 3.6 Server Response Data Class Fields Must Be Nullable
|
||||
|
||||
```kotlin
|
||||
// ❌ Wrong: Fields declared as non-null (server may not return them)
|
||||
data class UserResponse(
|
||||
val id: String = "",
|
||||
val name: String = "",
|
||||
val avatar: String = ""
|
||||
)
|
||||
|
||||
// ✅ Correct: All fields declared as nullable
|
||||
data class UserResponse(
|
||||
@SerializedName("id")
|
||||
val id: String? = null,
|
||||
@SerializedName("name")
|
||||
val name: String? = null,
|
||||
@SerializedName("avatar")
|
||||
val avatar: String? = null
|
||||
)
|
||||
```
|
||||
|
||||
### 3.7 Lifecycle Resource Management
|
||||
|
||||
```kotlin
|
||||
// ❌ Wrong: Only adding Observer, not removing
|
||||
class MyView : View {
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
activity?.lifecycle?.addObserver(this)
|
||||
}
|
||||
// Memory leak!
|
||||
}
|
||||
|
||||
// ✅ Correct: Paired add and remove
|
||||
class MyView : View {
|
||||
override fun onAttachedToWindow() {
|
||||
super.onAttachedToWindow()
|
||||
activity?.lifecycle?.addObserver(this)
|
||||
}
|
||||
|
||||
override fun onDetachedFromWindow() {
|
||||
activity?.lifecycle?.removeObserver(this)
|
||||
super.onDetachedFromWindow()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 3.8 Logging Level Usage
|
||||
|
||||
```kotlin
|
||||
import android.util.Log
|
||||
|
||||
// Info: Key checkpoints in normal flow
|
||||
Log.i(TAG, "loadData: started, userId = $userId")
|
||||
|
||||
// Warning: Abnormal but recoverable situations
|
||||
Log.w(TAG, "loadData: cache miss, fallback to network")
|
||||
|
||||
// Error: Failure/error situations
|
||||
Log.e(TAG, "loadData failed: ${error.message}")
|
||||
```
|
||||
|
||||
| Level | Use Case |
|
||||
|-------|----------|
|
||||
| `i` (Info) | Normal flow, method entry, key parameters |
|
||||
| `w` (Warning) | Recoverable exceptions, fallback handling, null returns |
|
||||
| `e` (Error) | Request failures, caught exceptions, unrecoverable errors |
|
||||
|
||||
---
|
||||
|
||||
## 4. Jetpack Compose Standards
|
||||
|
||||
### 4.1 @Composable Context Rules
|
||||
|
||||
```kotlin
|
||||
// ❌ Wrong: Calling Composable from non-Composable function
|
||||
fun showError(message: String) {
|
||||
Text(message) // Compile error!
|
||||
}
|
||||
|
||||
// ✅ Correct: Mark as @Composable
|
||||
@Composable
|
||||
fun ErrorMessage(message: String) {
|
||||
Text(message)
|
||||
}
|
||||
|
||||
// ❌ Wrong: Using suspend outside LaunchedEffect
|
||||
@Composable
|
||||
fun MyScreen() {
|
||||
val data = fetchData() // Error!
|
||||
}
|
||||
|
||||
// ✅ Correct: Use LaunchedEffect
|
||||
@Composable
|
||||
fun MyScreen() {
|
||||
var data by remember { mutableStateOf<Data?>(null) }
|
||||
LaunchedEffect(Unit) {
|
||||
data = fetchData()
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
### 4.2 State Management
|
||||
|
||||
```kotlin
|
||||
// Basic State
|
||||
var count by remember { mutableStateOf(0) }
|
||||
|
||||
// Derived State (avoid redundant computation)
|
||||
val isEven by remember { derivedStateOf { count % 2 == 0 } }
|
||||
|
||||
// Persist across recomposition (e.g., scroll position)
|
||||
val scrollState = rememberScrollState()
|
||||
|
||||
// State in ViewModel
|
||||
class MyViewModel : ViewModel() {
|
||||
private val _uiState = MutableStateFlow(UiState())
|
||||
val uiState: StateFlow<UiState> = _uiState.asStateFlow()
|
||||
}
|
||||
```
|
||||
|
||||
### 4.3 Common Compose Mistakes
|
||||
|
||||
```kotlin
|
||||
// ❌ Wrong: Creating objects in Composable (created on every recomposition)
|
||||
@Composable
|
||||
fun MyScreen() {
|
||||
val viewModel = MyViewModel() // Wrong!
|
||||
}
|
||||
|
||||
// ✅ Correct: Use viewModel() or remember
|
||||
@Composable
|
||||
fun MyScreen(viewModel: MyViewModel = viewModel()) {
|
||||
// ...
|
||||
}
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 5. Resources & Icons
|
||||
|
||||
### 5.1 App Icon Requirements
|
||||
|
||||
Must provide multi-resolution icons:
|
||||
|
||||
| Directory | Size | Purpose |
|
||||
|-----------|------|---------|
|
||||
| mipmap-mdpi | 48x48 | Baseline |
|
||||
| mipmap-hdpi | 72x72 | 1.5x |
|
||||
| mipmap-xhdpi | 96x96 | 2x |
|
||||
| mipmap-xxhdpi | 144x144 | 3x |
|
||||
| mipmap-xxxhdpi | 192x192 | 4x |
|
||||
|
||||
Recommended: Use Adaptive Icon (Android 8+):
|
||||
|
||||
```xml
|
||||
<!-- res/mipmap-anydpi-v26/ic_launcher.xml -->
|
||||
<adaptive-icon>
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
```
|
||||
|
||||
### 5.2 Resource Naming Conventions
|
||||
|
||||
| Type | Prefix | Example |
|
||||
|------|--------|---------|
|
||||
| Layout | layout_ | `layout_main.xml` |
|
||||
| Image | ic_, img_, bg_ | `ic_user.png` |
|
||||
| Color | color_ | `color_primary` |
|
||||
| String | - | `app_name`, `btn_submit` |
|
||||
|
||||
### 5.3 Avoid Android Reserved Names (Important)
|
||||
|
||||
Variable names, resource IDs, colors, icons, and XML elements **must not** use Android reserved words or system resource names. Using reserved names causes build errors or resource conflicts.
|
||||
|
||||
**Common Reserved Names to Avoid**:
|
||||
|
||||
| Category | Reserved Names (Do NOT Use) |
|
||||
|----------|----------------------------|
|
||||
| Colors | `background`, `foreground`, `transparent`, `white`, `black` |
|
||||
| Icons/Drawables | `icon`, `logo`, `image`, `drawable` |
|
||||
| Views | `view`, `text`, `button`, `layout`, `container` |
|
||||
| Attributes | `id`, `name`, `type`, `style`, `theme`, `color` |
|
||||
| System | `app`, `android`, `content`, `data`, `action` |
|
||||
|
||||
**Examples**:
|
||||
|
||||
```xml
|
||||
<!-- ❌ Wrong: Using reserved names -->
|
||||
<color name="background">#FFFFFF</color>
|
||||
<color name="icon">#000000</color>
|
||||
|
||||
<!-- ✅ Correct: Add prefix or specific naming -->
|
||||
<color name="app_background">#FFFFFF</color>
|
||||
<color name="icon_primary">#000000</color>
|
||||
```
|
||||
|
||||
```kotlin
|
||||
// ❌ Wrong: Variable names conflict with system
|
||||
val icon = R.drawable.my_icon
|
||||
val background = Color.White
|
||||
|
||||
// ✅ Correct: Use descriptive names
|
||||
val appIcon = R.drawable.my_icon
|
||||
val screenBackground = Color.White
|
||||
```
|
||||
|
||||
```xml
|
||||
<!-- ❌ Wrong: Drawable name conflicts -->
|
||||
<ImageView android:src="@drawable/icon" />
|
||||
|
||||
<!-- ✅ Correct: Add prefix -->
|
||||
<ImageView android:src="@drawable/ic_home" />
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 6. Build Error Diagnosis & Fixes
|
||||
|
||||
### 6.1 Common Error Quick Reference
|
||||
|
||||
| Error Keyword | Cause | Fix |
|
||||
|---------------|-------|-----|
|
||||
| `Unresolved reference` | Missing import or undefined | Check imports, verify dependencies |
|
||||
| `Type mismatch` | Type incompatibility | Check parameter types, add conversion |
|
||||
| `Cannot access` | Visibility issue | Check public/private/internal |
|
||||
| `@Composable invocations` | Composable context error | Ensure caller is also @Composable |
|
||||
| `Duplicate class` | Dependency conflict | Use `./gradlew dependencies` to investigate |
|
||||
| `AAPT: error` | Resource file error | Check XML syntax and resource references |
|
||||
|
||||
### 6.2 Fix Best Practices
|
||||
|
||||
1. **Read the complete error message first**: Locate file and line number
|
||||
2. **Check recent changes**: Problems usually in latest modifications
|
||||
3. **Clean Build**: `./gradlew clean assembleDebug`
|
||||
4. **Check dependency versions**: Version conflicts are common causes
|
||||
5. **Refresh dependencies if needed**: Clear cache and rebuild
|
||||
|
||||
### 6.3 Debugging Commands
|
||||
|
||||
```bash
|
||||
# Clean and build
|
||||
./gradlew clean assembleDebug
|
||||
|
||||
# View dependency tree (investigate conflicts)
|
||||
./gradlew :app:dependencies
|
||||
|
||||
# View detailed errors
|
||||
./gradlew assembleDebug --stacktrace
|
||||
|
||||
# Refresh dependencies
|
||||
./gradlew --refresh-dependencies
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## 7. Material Design 3 Guidelines
|
||||
|
||||
Review Android UI files for compliance with Material Design 3 Guidelines and Android best practices.
|
||||
|
||||
### Design Philosophy
|
||||
|
||||
#### M3 Core Principles
|
||||
|
||||
| Principle | Description |
|
||||
|-----------|-------------|
|
||||
| **Personal** | Dynamic color based on user preferences and wallpaper |
|
||||
| **Adaptive** | Responsive across all screen sizes and form factors |
|
||||
| **Expressive** | Bold colors and typography with personality |
|
||||
| **Accessible** | Inclusive design for all users |
|
||||
|
||||
#### M3 Expressive (Latest)
|
||||
|
||||
The latest evolution adds emotion-driven UX through:
|
||||
- Vibrant, dynamic colors
|
||||
- Intuitive motion physics
|
||||
- Adaptive components
|
||||
- Flexible typography
|
||||
- Contrasting shapes (35 new shape options)
|
||||
|
||||
### App Style Selection
|
||||
|
||||
**Critical Decision**: Match visual style to app category and target audience.
|
||||
|
||||
| App Category | Visual Style | Key Characteristics |
|
||||
|--------------|--------------|---------------------|
|
||||
| Utility/Tool | Minimalist | Clean, efficient, neutral colors |
|
||||
| Finance/Banking | Professional Trust | Conservative colors, security-focused |
|
||||
| Health/Wellness | Calm & Natural | Soft colors, organic shapes |
|
||||
| Kids (3-5) | Playful Simple | Bright colors, large targets (56dp+) |
|
||||
| Kids (6-12) | Fun & Engaging | Vibrant, gamified feedback |
|
||||
| Social/Entertainment | Expressive | Brand-driven, gesture-rich |
|
||||
| Productivity | Clean & Focused | Minimal, high contrast |
|
||||
| E-commerce | Conversion-focused | Clear CTAs, scannable |
|
||||
|
||||
See [Design Style Guide](references/design-style-guide.md) for detailed style profiles.
|
||||
|
||||
### Quick Reference: Key Specifications
|
||||
|
||||
#### Color Contrast Requirements
|
||||
|
||||
| Element | Minimum Ratio |
|
||||
|---------|---------------|
|
||||
| Body text | **4.5:1** |
|
||||
| Large text (18sp+) | **3:1** |
|
||||
| UI components | **3:1** |
|
||||
|
||||
#### Touch Targets
|
||||
|
||||
| Type | Size |
|
||||
|------|------|
|
||||
| Minimum | 48 × 48dp |
|
||||
| Recommended (primary actions) | 56 × 56dp |
|
||||
| Kids apps | 56dp+ |
|
||||
| Spacing between targets | 8dp minimum |
|
||||
|
||||
#### 8dp Grid System
|
||||
|
||||
| Token | Value | Usage |
|
||||
|-------|-------|-------|
|
||||
| xs | 4dp | Icon padding |
|
||||
| sm | 8dp | Tight spacing |
|
||||
| md | 16dp | Default padding |
|
||||
| lg | 24dp | Section spacing |
|
||||
| xl | 32dp | Large gaps |
|
||||
| xxl | 48dp | Screen margins |
|
||||
|
||||
#### Typography Scale (Summary)
|
||||
|
||||
| Category | Sizes |
|
||||
|----------|-------|
|
||||
| Display | 57sp, 45sp, 36sp |
|
||||
| Headline | 32sp, 28sp, 24sp |
|
||||
| Title | 22sp, 16sp, 14sp |
|
||||
| Body | 16sp, 14sp, 12sp |
|
||||
| Label | 14sp, 12sp, 11sp |
|
||||
|
||||
#### Animation Duration
|
||||
|
||||
| Type | Duration |
|
||||
|------|----------|
|
||||
| Micro (ripples) | 50-100ms |
|
||||
| Short (simple) | 100-200ms |
|
||||
| Medium (expand/collapse) | 200-300ms |
|
||||
| Long (complex) | 300-500ms |
|
||||
|
||||
#### Component Dimensions
|
||||
|
||||
| Component | Height | Min Width |
|
||||
|-----------|--------|-----------|
|
||||
| Button | 40dp | 64dp |
|
||||
| FAB | 56dp | 56dp |
|
||||
| Text Field | 56dp | 280dp |
|
||||
| App Bar | 64dp | - |
|
||||
| Bottom Nav | 80dp | - |
|
||||
|
||||
### Anti-Patterns (Must Avoid)
|
||||
|
||||
#### UI Anti-Patterns
|
||||
- More than 5 bottom navigation items
|
||||
- Multiple FABs on same screen
|
||||
- Touch targets smaller than 48dp
|
||||
- Inconsistent spacing (non-8dp multiples)
|
||||
- Missing dark theme support
|
||||
- Text on colored backgrounds without contrast check
|
||||
|
||||
#### Performance Anti-Patterns
|
||||
- Startup time > 2 seconds without progress indicator
|
||||
- Frame rate < 60 FPS (> 16ms per frame)
|
||||
- Crash rate > 1.09% (Google Play threshold)
|
||||
- ANR rate > 0.47% (Google Play threshold)
|
||||
|
||||
#### Accessibility Anti-Patterns
|
||||
- Missing contentDescription on interactive elements
|
||||
- Element type in labels (e.g., "Save button" instead of "Save")
|
||||
- Complex gestures in kids apps
|
||||
- Text-only buttons for non-readers
|
||||
|
||||
### Review Checklist
|
||||
|
||||
- [ ] 8dp spacing grid compliance
|
||||
- [ ] 48dp minimum touch targets
|
||||
- [ ] Proper typography scale usage
|
||||
- [ ] Color contrast compliance (4.5:1+ for text)
|
||||
- [ ] Dark theme support
|
||||
- [ ] contentDescription on all interactive elements
|
||||
- [ ] Startup < 2 seconds or shows progress
|
||||
- [ ] Visual style matches app category
|
||||
|
||||
### Design References
|
||||
|
||||
| Topic | Reference |
|
||||
|-------|-----------|
|
||||
| Colors, Typography, Spacing, Shapes | [Visual Design](references/visual-design.md) |
|
||||
| Animation & Transitions | [Motion System](references/motion-system.md) |
|
||||
| Accessibility Guidelines | [Accessibility](references/accessibility.md) |
|
||||
| Large Screens & Foldables | [Adaptive Screens](references/adaptive-screens.md) |
|
||||
| Android Vitals & Performance | [Performance & Stability](references/performance-stability.md) |
|
||||
| Privacy & Security | [Privacy & Security](references/privacy-security.md) |
|
||||
| Audio, Video, Notifications | [Functional Requirements](references/functional-requirements.md) |
|
||||
| App Style by Category | [Design Style Guide](references/design-style-guide.md) |
|
||||
209
android-native-dev/references/accessibility.md
Normal file
209
android-native-dev/references/accessibility.md
Normal file
@@ -0,0 +1,209 @@
|
||||
# Accessibility Guidelines
|
||||
|
||||
Comprehensive accessibility requirements for Android applications.
|
||||
|
||||
## Core Requirements
|
||||
|
||||
### Minimum Standards
|
||||
|
||||
| Requirement | Specification |
|
||||
|-------------|---------------|
|
||||
| Color contrast (text) | 4.5:1 minimum |
|
||||
| Color contrast (large text) | 3:1 minimum |
|
||||
| Color contrast (UI components) | 3:1 minimum |
|
||||
| Touch targets | 48 × 48dp minimum |
|
||||
| Content descriptions | All interactive elements |
|
||||
| Focus indicators | Clearly visible |
|
||||
| Screen reader support | Proper semantics |
|
||||
|
||||
## Content Labels
|
||||
|
||||
### contentDescription
|
||||
|
||||
Use for non-text interactive elements.
|
||||
|
||||
**When to use:**
|
||||
- ImageView, ImageButton
|
||||
- CheckBox, Switch (state description)
|
||||
- Custom drawable views
|
||||
- Icons that convey meaning
|
||||
|
||||
**When NOT to use:**
|
||||
- TextView (uses text content automatically)
|
||||
- Decorative images (set to null)
|
||||
- Elements with labelFor relationship
|
||||
|
||||
### android:hint
|
||||
|
||||
Use for editable text fields to show placeholder text.
|
||||
|
||||
**Important**: Don't use contentDescription on EditText—it interferes with accessibility services.
|
||||
|
||||
### android:labelFor
|
||||
|
||||
Link labels to input fields by setting labelFor on the TextView to reference the EditText ID.
|
||||
|
||||
## Label Best Practices
|
||||
|
||||
### Do's
|
||||
|
||||
| Practice | Example |
|
||||
|----------|---------|
|
||||
| Be concise | "Save" not "Click here to save" |
|
||||
| Describe action/purpose | "Delete message" |
|
||||
| Be unique in context | "Delete item 3" not just "Delete" |
|
||||
| Update dynamically | "Pause" ↔ "Play" based on state |
|
||||
|
||||
### Don'ts
|
||||
|
||||
| Avoid | Reason |
|
||||
|-------|--------|
|
||||
| Include element type | TalkBack announces "button" automatically |
|
||||
| Say "button", "image", etc. | Redundant with accessibility info |
|
||||
| Use "click" or "tap" | Input method varies |
|
||||
| Leave empty/generic | "Button" or "Image" is unhelpful |
|
||||
|
||||
### Examples
|
||||
|
||||
| Bad | Good |
|
||||
|-----|------|
|
||||
| "Save button" | "Save" |
|
||||
| "Click here to submit" | "Submit" |
|
||||
| "Image" | "Profile photo of John" |
|
||||
| "Button 1" | "Add to cart" |
|
||||
|
||||
## Focus and Navigation
|
||||
|
||||
### Focus Groups
|
||||
|
||||
Group related elements using `screenReaderFocusable="true"` on the container and `focusable="false"` on child elements. TalkBack will announce all children's content in a single utterance.
|
||||
|
||||
### Headings
|
||||
|
||||
Mark section headers with `accessibilityHeading="true"`. Users can navigate between headings for quick scanning.
|
||||
|
||||
### Pane Titles
|
||||
|
||||
Identify screen regions with `accessibilityPaneTitle`. Accessibility services announce pane changes.
|
||||
|
||||
### Focus Order
|
||||
|
||||
- Natural reading order (top-to-bottom, start-to-end)
|
||||
- Use `accessibilityTraversalBefore/After` for custom order
|
||||
- Ensure all interactive elements are focusable
|
||||
- Skip decorative elements
|
||||
|
||||
## Decorative Elements
|
||||
|
||||
Skip elements that don't convey information:
|
||||
- Set `contentDescription="@null"`
|
||||
- Or set `importantForAccessibility="no"`
|
||||
|
||||
## Custom Accessibility Actions
|
||||
|
||||
### Adding Actions
|
||||
|
||||
Provide alternatives for gesture-based interactions using `ViewCompat.addAccessibilityAction()`. This exposes swipe actions to accessibility services.
|
||||
|
||||
### Replacing Action Labels
|
||||
|
||||
Make default actions more descriptive using `ViewCompat.replaceAccessibilityAction()`. Example: "Double tap and hold to add to favorites" instead of generic "long press".
|
||||
|
||||
## Color and Visual Cues
|
||||
|
||||
### Don't Rely on Color Alone
|
||||
|
||||
Combine color with other indicators:
|
||||
|
||||
| Information | Color + Alternative |
|
||||
|-------------|---------------------|
|
||||
| Error state | Red + error icon + text |
|
||||
| Success | Green + checkmark + text |
|
||||
| Required field | Red asterisk + "Required" label |
|
||||
| Selected item | Highlight + checkmark + bold |
|
||||
| Link text | Blue + underline |
|
||||
|
||||
### Contrast Testing
|
||||
|
||||
Use tools to verify contrast:
|
||||
- Android Accessibility Scanner
|
||||
- Contrast Checker plugins
|
||||
- Manual calculation: (L1 + 0.05) / (L2 + 0.05)
|
||||
|
||||
## Touch Targets
|
||||
|
||||
### Minimum Sizes
|
||||
|
||||
| Element | Minimum | Recommended |
|
||||
|---------|---------|-------------|
|
||||
| Standard | 48 × 48dp | 48 × 48dp |
|
||||
| Primary actions | 48 × 48dp | 56 × 56dp |
|
||||
| Kids apps | 56 × 56dp | 64 × 64dp |
|
||||
|
||||
### Spacing
|
||||
|
||||
- Minimum 8dp between adjacent touch targets
|
||||
- Visual element can be smaller if touch area is adequate (use padding)
|
||||
|
||||
## Screen Reader Announcements
|
||||
|
||||
### Live Regions
|
||||
|
||||
Announce dynamic content changes using `accessibilityLiveRegion`:
|
||||
|
||||
| Mode | Usage |
|
||||
|------|-------|
|
||||
| polite | Announces when user is idle |
|
||||
| assertive | Interrupts current speech |
|
||||
| none | No automatic announcements |
|
||||
|
||||
### Custom Announcements
|
||||
|
||||
Use `announceForAccessibility()` sparingly—prefer live regions.
|
||||
|
||||
## Keyboard and Hardware Navigation
|
||||
|
||||
### Focus Indicators
|
||||
|
||||
- Visible focus state for all interactive elements
|
||||
- Don't remove default focus indicators
|
||||
- Custom focus: 2dp+ border or background change
|
||||
|
||||
### Keyboard Shortcuts
|
||||
|
||||
- Support Tab navigation
|
||||
- Enter/Space for activation
|
||||
- Arrow keys for lists/grids
|
||||
- Escape for dismissal
|
||||
|
||||
## Testing Accessibility
|
||||
|
||||
### Manual Testing
|
||||
|
||||
1. **TalkBack**: Navigate entire app with screen reader
|
||||
2. **Switch Access**: Test with switch navigation
|
||||
3. **Keyboard**: Navigate with external keyboard only
|
||||
4. **Magnification**: Test with zoom enabled
|
||||
5. **Large text**: Test with 200% font scale
|
||||
6. **High contrast**: Test with high contrast mode
|
||||
|
||||
### Automated Testing
|
||||
|
||||
| Tool | Purpose |
|
||||
|------|---------|
|
||||
| Accessibility Scanner | On-device scanning |
|
||||
| Espresso Accessibility Checks | Automated UI tests |
|
||||
| Lint checks | Static analysis |
|
||||
|
||||
### Checklist
|
||||
|
||||
- [ ] All interactive elements have descriptions
|
||||
- [ ] Touch targets are 48dp minimum
|
||||
- [ ] Color contrast meets requirements
|
||||
- [ ] Focus order is logical
|
||||
- [ ] Headings are properly marked
|
||||
- [ ] Custom actions have descriptive labels
|
||||
- [ ] Live regions announce important changes
|
||||
- [ ] Keyboard navigation works
|
||||
- [ ] Works with TalkBack enabled
|
||||
- [ ] Works with large text (200%)
|
||||
231
android-native-dev/references/adaptive-screens.md
Normal file
231
android-native-dev/references/adaptive-screens.md
Normal file
@@ -0,0 +1,231 @@
|
||||
# Adaptive Screens Guidelines
|
||||
|
||||
Requirements for large screens, tablets, foldables, and multi-window support.
|
||||
|
||||
## Adaptive Quality Tiers
|
||||
|
||||
Google defines three progressive quality tiers for adaptive apps:
|
||||
|
||||
### Tier 3: Adaptive Ready (Basic)
|
||||
|
||||
Minimum requirements for all apps:
|
||||
|
||||
| Requirement | Description |
|
||||
|-------------|-------------|
|
||||
| Full screen | App fills display, no letterboxing |
|
||||
| Configuration changes | Handles rotation, folding, resizing |
|
||||
| Multi-window | Supports split-screen mode |
|
||||
| Basic input | Keyboard, mouse, trackpad support |
|
||||
|
||||
### Tier 2: Adaptive Optimized (Better)
|
||||
|
||||
Enhanced experience:
|
||||
|
||||
| Requirement | Description |
|
||||
|-------------|-------------|
|
||||
| Layout optimization | Responsive layouts for all sizes |
|
||||
| Enhanced input | Full keyboard shortcuts, mouse hover states |
|
||||
| Continuity | Seamless state preservation |
|
||||
|
||||
### Tier 1: Adaptive Differentiated (Best)
|
||||
|
||||
Device-specific excellence:
|
||||
|
||||
| Requirement | Description |
|
||||
|-------------|-------------|
|
||||
| Multitasking | Drag and drop, activity embedding |
|
||||
| Foldable postures | Table-top mode, book mode support |
|
||||
| Stylus | Full stylus input support |
|
||||
| Desktop | Windowed mode optimization |
|
||||
|
||||
## Screen Size Classes
|
||||
|
||||
### Width-Based Classes
|
||||
|
||||
| Class | Width | Typical Devices |
|
||||
|-------|-------|-----------------|
|
||||
| Compact | < 600dp | Phone portrait |
|
||||
| Medium | 600-840dp | Tablet portrait, phone landscape |
|
||||
| Expanded | > 840dp | Tablet landscape, desktop |
|
||||
|
||||
### Layout Strategies
|
||||
|
||||
| Screen Class | Navigation | Content Layout |
|
||||
|--------------|------------|----------------|
|
||||
| Compact | Bottom nav | Single pane |
|
||||
| Medium | Nav rail | List-detail (optional) |
|
||||
| Expanded | Nav drawer/rail | List-detail, multi-pane |
|
||||
|
||||
## Configuration Changes
|
||||
|
||||
### Must Handle
|
||||
|
||||
| Change | Trigger |
|
||||
|--------|---------|
|
||||
| Rotation | Device rotated |
|
||||
| Fold/Unfold | Foldable state change |
|
||||
| Window resize | Multi-window adjustment |
|
||||
| Split screen | Enter/exit split mode |
|
||||
| Keyboard | External keyboard attach/detach |
|
||||
|
||||
### Configuration Handling
|
||||
|
||||
| Approach | Description |
|
||||
|----------|-------------|
|
||||
| Let system handle | Default, activity recreated |
|
||||
| Handle manually | Declare configChanges, implement onConfigurationChanged |
|
||||
|
||||
### State Preservation
|
||||
|
||||
- Use ViewModel for UI state
|
||||
- Use SavedStateHandle for process death
|
||||
- Test with "Don't keep activities" enabled
|
||||
|
||||
## Multi-Window Support
|
||||
|
||||
### Requirements
|
||||
|
||||
| Feature | Status |
|
||||
|---------|--------|
|
||||
| resizeableActivity | true (default API 24+) |
|
||||
| Minimum size | Support 220dp width |
|
||||
| State handling | Preserve across resize |
|
||||
|
||||
### Best Practices
|
||||
|
||||
- Don't assume full-screen ownership
|
||||
- Handle onConfigurationChanged gracefully
|
||||
- Test at minimum supported size
|
||||
- Support free-form windows (desktop mode)
|
||||
|
||||
## Foldable Devices
|
||||
|
||||
### Postures
|
||||
|
||||
| Posture | Description | Use Case |
|
||||
|---------|-------------|----------|
|
||||
| Flat | Fully open | Normal tablet use |
|
||||
| Half-opened (tabletop) | Hinged at ~90° horizontal | Video calls, media |
|
||||
| Half-opened (book) | Hinged at ~90° vertical | Reading, productivity |
|
||||
| Folded | Closed | Compact phone mode |
|
||||
|
||||
### Design Considerations
|
||||
|
||||
- Avoid placing interactive elements on the fold
|
||||
- Consider separate content for each screen segment
|
||||
- Support continuity when fold state changes
|
||||
- Use WindowInfoTracker to detect fold state
|
||||
|
||||
## External Input Devices
|
||||
|
||||
### Keyboard Support
|
||||
|
||||
| Requirement | Implementation |
|
||||
|-------------|----------------|
|
||||
| Tab navigation | Focusable elements in order |
|
||||
| Enter/Space | Activates focused element |
|
||||
| Arrow keys | Navigate lists, grids |
|
||||
| Shortcuts | Common actions (Ctrl+S, etc.) |
|
||||
| Focus indicators | Visible focus states |
|
||||
|
||||
### Mouse/Trackpad Support
|
||||
|
||||
| Requirement | Implementation |
|
||||
|-------------|----------------|
|
||||
| Hover states | Visual feedback on hover |
|
||||
| Right-click | Context menu support |
|
||||
| Scroll | Smooth scrolling |
|
||||
| Pointer cursor | Appropriate cursor types |
|
||||
|
||||
### Stylus Support
|
||||
|
||||
| Feature | Implementation |
|
||||
|---------|----------------|
|
||||
| Pressure sensitivity | Variable stroke width |
|
||||
| Palm rejection | Ignore palm touches |
|
||||
| Tilt detection | Shading effects |
|
||||
| Hover preview | Show cursor before touch |
|
||||
|
||||
## Navigation Patterns
|
||||
|
||||
### By Screen Width
|
||||
|
||||
| Width | Primary Nav | Secondary Nav |
|
||||
|-------|-------------|---------------|
|
||||
| < 600dp | Bottom nav (3-5 items) | Hamburger menu |
|
||||
| 600-840dp | Navigation rail | Drawer on demand |
|
||||
| > 840dp | Permanent drawer or rail | Drawer or none |
|
||||
|
||||
### Navigation Rail Specs
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Width | 80dp |
|
||||
| Icon size | 24dp |
|
||||
| Touch target | 56dp |
|
||||
| Items | 3-7 destinations |
|
||||
| FAB | Optional, at top |
|
||||
|
||||
### Permanent Navigation Drawer
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Width | 256-360dp |
|
||||
| Position | Left edge (LTR) |
|
||||
| Behavior | Always visible |
|
||||
| Content | Full labels, icons |
|
||||
|
||||
## Responsive Layouts
|
||||
|
||||
### Breakpoints
|
||||
|
||||
| Class | Width Range |
|
||||
|-------|-------------|
|
||||
| COMPACT | < 600dp |
|
||||
| MEDIUM | 600-840dp |
|
||||
| EXPANDED | > 840dp |
|
||||
|
||||
Use WindowSizeClass to determine current breakpoint and adapt layout accordingly.
|
||||
|
||||
## Content Considerations
|
||||
|
||||
### Text Readability
|
||||
|
||||
- Line length: 45-75 characters max
|
||||
- Use multiple columns on wide screens
|
||||
- Maintain hierarchy with consistent spacing
|
||||
|
||||
### Media
|
||||
|
||||
- Support multiple aspect ratios
|
||||
- Provide high-resolution assets
|
||||
- Consider picture-in-picture for video
|
||||
|
||||
### Touch vs. Precise Input
|
||||
|
||||
- Large screens often use mouse/keyboard
|
||||
- Don't assume touch-only interaction
|
||||
- Provide hover states and tooltips
|
||||
|
||||
## Testing
|
||||
|
||||
### Device Matrix
|
||||
|
||||
| Device Type | Test Priority |
|
||||
|-------------|---------------|
|
||||
| Phone (portrait) | Required |
|
||||
| Phone (landscape) | Required |
|
||||
| Tablet (both orientations) | Required |
|
||||
| Foldable (all postures) | High |
|
||||
| Desktop/Chromebook | Medium |
|
||||
|
||||
### Test Cases
|
||||
|
||||
- [ ] App fills screen in all configurations
|
||||
- [ ] No letterboxing or black bars
|
||||
- [ ] State preserved across configuration changes
|
||||
- [ ] Multi-window works at minimum size
|
||||
- [ ] Keyboard navigation functional
|
||||
- [ ] Mouse hover states present
|
||||
- [ ] Foldable postures handled (if applicable)
|
||||
- [ ] Navigation adapts to screen width
|
||||
365
android-native-dev/references/design-style-guide.md
Normal file
365
android-native-dev/references/design-style-guide.md
Normal file
@@ -0,0 +1,365 @@
|
||||
# Design Style Guide
|
||||
|
||||
Match visual design to app category and target audience for cohesive user experience.
|
||||
|
||||
## Style Selection Principle
|
||||
|
||||
> **The visual style must match the app's purpose and audience.**
|
||||
> A finance app should feel trustworthy, not playful.
|
||||
> A children's app should feel fun, not corporate.
|
||||
|
||||
## Style Selection Matrix
|
||||
|
||||
| App Category | Visual Style | Color Palette | Typography | Interaction |
|
||||
|--------------|--------------|---------------|------------|-------------|
|
||||
| Utility/Tool | Minimalist | Neutral + 1 accent | Clean sans-serif | Direct, efficient |
|
||||
| Finance/Banking | Professional Trust | Blue/Green/Navy | Conservative | Secure, deliberate |
|
||||
| Health/Wellness | Calm & Natural | Soft greens, earth tones | Rounded, friendly | Gentle, encouraging |
|
||||
| Kids (3-5) | Playful Simple | Bright primary colors | Large, rounded | Big targets, forgiving |
|
||||
| Kids (6-12) | Fun & Engaging | Vibrant, varied | Bold, readable | Gamified feedback |
|
||||
| Social/Entertainment | Expressive | Brand-driven | Dynamic | Gesture-rich |
|
||||
| Productivity | Clean & Focused | Minimal, high contrast | Professional | Keyboard-friendly |
|
||||
| E-commerce | Conversion-focused | Brand + CTA colors | Scannable | Quick actions |
|
||||
| Gaming | Immersive | Theme-driven | Stylized | Custom gestures |
|
||||
|
||||
## Detailed Style Profiles
|
||||
|
||||
### Minimalist / iOS-like (Utility Apps)
|
||||
|
||||
**When to use**: Tools, utilities, calculators, file managers, settings apps
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | 2-3 colors max, neutral base |
|
||||
| Whitespace | Generous, 24-48dp margins |
|
||||
| Typography | Single font family, clear hierarchy |
|
||||
| Icons | Line-based, consistent stroke |
|
||||
| Shadows | Subtle or none |
|
||||
| Borders | Thin (1dp) or none |
|
||||
| Shapes | Subtle corners (8-12dp) |
|
||||
|
||||
**Interaction Style**:
|
||||
- Direct manipulation
|
||||
- Immediate feedback
|
||||
- No unnecessary animations
|
||||
- Efficient task completion
|
||||
|
||||
**Color Palette**:
|
||||
|
||||
| Role | Light Mode | Dark Mode |
|
||||
|------|------------|-----------|
|
||||
| Background | #FAFAFA | #1C1C1E |
|
||||
| Surface | #FFFFFF | #2C2C2E |
|
||||
| Primary | #007AFF | #0A84FF |
|
||||
| Text | #000000 | #FFFFFF |
|
||||
| Secondary | #8E8E93 | #8E8E93 |
|
||||
|
||||
**Reference Apps**: iOS Settings, Apple Notes, Google Calculator
|
||||
|
||||
---
|
||||
|
||||
### Professional Trust (Finance/Business)
|
||||
|
||||
**When to use**: Banking, investment, enterprise, B2B applications
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | Blues, greens, navy (trust colors) |
|
||||
| Whitespace | Structured, grid-based |
|
||||
| Typography | Formal, conservative weights |
|
||||
| Icons | Filled or outlined, consistent |
|
||||
| Data visualization | Clear, accurate charts |
|
||||
| Security indicators | Prominent locks, badges |
|
||||
|
||||
**Interaction Style**:
|
||||
- Confirmatory (double-check important actions)
|
||||
- Deliberate (not rushed)
|
||||
- Secure-feeling
|
||||
- Clear feedback on transactions
|
||||
|
||||
**Color Palette**:
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #00695C or #1565C0 | Teal 800 / Blue 800 |
|
||||
| Secondary | #37474F | Blue Grey 800 |
|
||||
| Accent | #FFC107 | Amber |
|
||||
| Background | #ECEFF1 | Blue Grey 50 |
|
||||
| Success | #2E7D32 | Green 800 |
|
||||
| Error | #C62828 | Red 800 |
|
||||
|
||||
**Key Patterns**:
|
||||
- Balance summaries prominent
|
||||
- Transaction history easily scannable
|
||||
- Secure entry for sensitive data
|
||||
- Biometric authentication prompts
|
||||
|
||||
**Reference Apps**: Banking apps, Trading platforms, Enterprise tools
|
||||
|
||||
---
|
||||
|
||||
### Calm & Wellness (Health Apps)
|
||||
|
||||
**When to use**: Meditation, fitness tracking, health monitoring, therapy
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | Soft, muted, natural |
|
||||
| Whitespace | Abundant (breathing room) |
|
||||
| Typography | Rounded, friendly fonts |
|
||||
| Shapes | Organic, soft corners (16dp+) |
|
||||
| Animation | Gentle, slow transitions |
|
||||
| Imagery | Nature, soft gradients |
|
||||
|
||||
**Interaction Style**:
|
||||
- Encouraging, not demanding
|
||||
- Progress-oriented
|
||||
- Gentle reminders
|
||||
- Celebration of achievements
|
||||
|
||||
**Color Palette**:
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #4CAF50 | Green 500 |
|
||||
| Secondary | #81C784 | Green 300 |
|
||||
| Tertiary | #B2DFDB | Teal 100 |
|
||||
| Background | #F1F8E9 | Light Green 50 |
|
||||
| Text | #33691E | Light Green 900 |
|
||||
| Accent | #FFB74D | Orange 300 |
|
||||
|
||||
**Key Patterns**:
|
||||
- Progress rings and charts
|
||||
- Streak tracking
|
||||
- Motivational messages
|
||||
- Quiet notification style
|
||||
|
||||
**Reference Apps**: Headspace, Calm, Apple Fitness
|
||||
|
||||
---
|
||||
|
||||
### Playful & Kid-Friendly (Children's Apps)
|
||||
|
||||
**When to use**: Educational games, children's content, family apps
|
||||
|
||||
#### Ages 3-5
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | Bright, saturated primary colors |
|
||||
| Touch targets | 56dp minimum, 64dp recommended |
|
||||
| Shapes | Very rounded (full radius) |
|
||||
| Typography | Large (18sp+ minimum), simple fonts |
|
||||
| Icons | Large, colorful, recognizable |
|
||||
| Animation | Frequent, rewarding |
|
||||
|
||||
**Interaction Style**:
|
||||
- Simple gestures only (tap, drag)
|
||||
- No multi-finger gestures
|
||||
- Forgiving error handling
|
||||
- Immediate, multi-sensory feedback (sound + visual + haptic)
|
||||
- No text-only buttons
|
||||
|
||||
**Color Palette**:
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #F44336 | Red 500 |
|
||||
| Secondary | #FFEB3B | Yellow 500 |
|
||||
| Tertiary | #2196F3 | Blue 500 |
|
||||
| Background | #FFFFFF | White or soft pastels |
|
||||
| Accent | #4CAF50 | Green 500 |
|
||||
|
||||
#### Ages 6-12
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | Vibrant, varied palette |
|
||||
| Touch targets | 48dp minimum |
|
||||
| Shapes | Rounded but can be varied |
|
||||
| Typography | Bold, readable, can include text |
|
||||
| Icons | Stylized, character-driven |
|
||||
| Animation | Gamified, achievement-based |
|
||||
|
||||
**Interaction Style**:
|
||||
- Can introduce some complexity
|
||||
- Gamification elements
|
||||
- Progress and rewards
|
||||
- Some text is acceptable
|
||||
|
||||
**Key Patterns for All Kids Apps**:
|
||||
- Icon-based navigation (no text-only)
|
||||
- Home button always visible
|
||||
- Back navigation clear
|
||||
- Parent gate for settings (math problem, hold button)
|
||||
- Multi-sensory feedback
|
||||
- Encouraging error states (no punishment)
|
||||
- Joint engagement opportunities with parents
|
||||
|
||||
**Reference Apps**: PBS Kids, Khan Academy Kids, Duolingo ABC
|
||||
|
||||
---
|
||||
|
||||
### Expressive & Social (Entertainment Apps)
|
||||
|
||||
**When to use**: Social media, content creation, entertainment
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | Bold brand colors |
|
||||
| Typography | Dynamic, personality-driven |
|
||||
| Media | Rich, prominent |
|
||||
| Animation | Expressive, delightful |
|
||||
| Shapes | Brand-specific |
|
||||
|
||||
**Interaction Style**:
|
||||
- Gesture-rich
|
||||
- Quick actions
|
||||
- Social interactions prominent
|
||||
- Content-first design
|
||||
|
||||
**Key Patterns**:
|
||||
- Feed-based layouts
|
||||
- Quick action buttons (like, share, comment)
|
||||
- Stories/ephemeral content
|
||||
- Creation tools accessible
|
||||
- Notification badges
|
||||
|
||||
**Reference Apps**: Instagram, TikTok, Snapchat
|
||||
|
||||
---
|
||||
|
||||
### Clean & Focused (Productivity Apps)
|
||||
|
||||
**When to use**: Note-taking, task management, email, documents
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | High contrast, minimal |
|
||||
| Whitespace | Strategic, content-focused |
|
||||
| Typography | Highly readable, clear hierarchy |
|
||||
| Icons | Functional, consistent |
|
||||
| Density | Adjustable (compact to comfortable) |
|
||||
|
||||
**Interaction Style**:
|
||||
- Keyboard-friendly
|
||||
- Batch operations
|
||||
- Drag and drop
|
||||
- Quick capture
|
||||
- Search-centric
|
||||
|
||||
**Color Palette**:
|
||||
|
||||
| Role | Light Mode | Dark Mode |
|
||||
|------|------------|-----------|
|
||||
| Primary | #1976D2 | #64B5F6 |
|
||||
| Background | #FFFFFF | #121212 |
|
||||
| Surface | #F5F5F5 | #1E1E1E |
|
||||
| Text | #212121 | #E0E0E0 |
|
||||
| Accent/Priority | #FF5722 | #FF7043 |
|
||||
|
||||
**Key Patterns**:
|
||||
- List views with swipe actions
|
||||
- Quick add buttons
|
||||
- Checkbox interactions
|
||||
- Due dates and reminders
|
||||
- Tags and categories
|
||||
|
||||
**Reference Apps**: Notion, Todoist, Google Tasks
|
||||
|
||||
---
|
||||
|
||||
### Conversion-Focused (E-commerce)
|
||||
|
||||
**When to use**: Shopping, marketplace, booking apps
|
||||
|
||||
**Visual Characteristics**:
|
||||
|
||||
| Element | Specification |
|
||||
|---------|---------------|
|
||||
| Colors | Brand + clear CTA colors |
|
||||
| Images | High quality, zoomable |
|
||||
| Typography | Scannable, price prominent |
|
||||
| Cards | Product-focused |
|
||||
| Badges | Sale, new, limited |
|
||||
|
||||
**Interaction Style**:
|
||||
- Quick add to cart
|
||||
- Easy checkout flow
|
||||
- Comparison features
|
||||
- Reviews accessible
|
||||
- Wishlist/save for later
|
||||
|
||||
**Key Patterns**:
|
||||
- Grid and list view toggle
|
||||
- Filter and sort
|
||||
- Product detail with gallery
|
||||
- Cart always accessible
|
||||
- One-tap purchase options
|
||||
|
||||
**Reference Apps**: Amazon, Shopify apps, Booking.com
|
||||
|
||||
---
|
||||
|
||||
## Consistency Principles
|
||||
|
||||
### Match Style to Subject Matter
|
||||
|
||||
| App Purpose | Style Should Feel |
|
||||
|-------------|-------------------|
|
||||
| Utility | Efficient, invisible |
|
||||
| Finance | Trustworthy, secure |
|
||||
| Health | Supportive, calm |
|
||||
| Kids | Safe, fun |
|
||||
| Social | Expressive, personal |
|
||||
| Productivity | Focused, powerful |
|
||||
| Shopping | Exciting, trustworthy |
|
||||
|
||||
### Internal Consistency Rules
|
||||
|
||||
| Rule | Implementation |
|
||||
|------|----------------|
|
||||
| Same icon style | All outlined OR all filled |
|
||||
| Consistent color meaning | Red = destructive, Green = success |
|
||||
| Uniform spacing | Use 8dp grid |
|
||||
| Predictable interaction | Same gesture = same result |
|
||||
| Typography system | Use M3 type scale |
|
||||
|
||||
## Anti-Patterns: Style Mismatch
|
||||
|
||||
| Mismatch | Problem |
|
||||
|----------|---------|
|
||||
| Playful colors in banking app | Undermines trust |
|
||||
| Complex gestures in kids app | Frustrates young users |
|
||||
| Cluttered UI in wellness app | Defeats calming purpose |
|
||||
| Boring visuals in entertainment | Fails to engage |
|
||||
| Aggressive CTAs in health app | Feels manipulative |
|
||||
| Childish design in professional tool | Lacks credibility |
|
||||
| Dense information in casual app | Overwhelms users |
|
||||
|
||||
## Implementation Checklist
|
||||
|
||||
- [ ] Identified app category and target audience
|
||||
- [ ] Selected appropriate style profile
|
||||
- [ ] Color palette matches style
|
||||
- [ ] Typography matches style
|
||||
- [ ] Interaction patterns match style
|
||||
- [ ] Touch targets appropriate for audience
|
||||
- [ ] Animation style consistent
|
||||
- [ ] Internal consistency maintained
|
||||
- [ ] No style mismatches
|
||||
- [ ] Tested with target users
|
||||
229
android-native-dev/references/functional-requirements.md
Normal file
229
android-native-dev/references/functional-requirements.md
Normal file
@@ -0,0 +1,229 @@
|
||||
# Functional Requirements
|
||||
|
||||
Audio, video, notifications, and other functional behavior requirements.
|
||||
|
||||
## Audio
|
||||
|
||||
### Playback Initialization
|
||||
|
||||
| Requirement | Specification |
|
||||
|-------------|---------------|
|
||||
| Response time | < 1 second |
|
||||
| If delayed | Show visual progress indicator |
|
||||
| User feedback | Immediate acknowledgment of action |
|
||||
|
||||
### Audio Focus Rules
|
||||
|
||||
| Event | Required Action |
|
||||
|-------|-----------------|
|
||||
| Another app requests focus | Pause or reduce volume |
|
||||
| Focus regained | Resume or restore volume |
|
||||
| Playback stops | Abandon focus |
|
||||
|
||||
### Audio Focus Handling
|
||||
|
||||
| Focus Change | Action |
|
||||
|--------------|--------|
|
||||
| AUDIOFOCUS_LOSS | Stop playback |
|
||||
| AUDIOFOCUS_LOSS_TRANSIENT | Pause playback |
|
||||
| AUDIOFOCUS_LOSS_TRANSIENT_CAN_DUCK | Reduce volume |
|
||||
| AUDIOFOCUS_GAIN | Resume playback |
|
||||
|
||||
### Background Playback
|
||||
|
||||
| Requirement | Implementation |
|
||||
|-------------|----------------|
|
||||
| Continue when backgrounded | Use Foreground Service |
|
||||
| Notification | MediaStyle notification required |
|
||||
| Media controls | System media controls integration |
|
||||
| Session | MediaSession for system integration |
|
||||
|
||||
## Video
|
||||
|
||||
### Picture-in-Picture (PiP)
|
||||
|
||||
| Requirement | Specification |
|
||||
|-------------|---------------|
|
||||
| Video apps | Should support PiP |
|
||||
| Aspect ratio | 16:9 to 2.39:1 |
|
||||
| Auto-enter | When user navigates away during playback |
|
||||
|
||||
### Video Encoding
|
||||
|
||||
| Standard | Requirement |
|
||||
|----------|-------------|
|
||||
| Compression | HEVC (H.265) recommended |
|
||||
| Fallback | H.264 for compatibility |
|
||||
| Quality | Adaptive based on network |
|
||||
|
||||
### Video Player Requirements
|
||||
|
||||
| Feature | Implementation |
|
||||
|---------|----------------|
|
||||
| Fullscreen | Support landscape |
|
||||
| Controls | Play, pause, seek, volume |
|
||||
| Captions | Support closed captions |
|
||||
| Resume | Remember playback position |
|
||||
|
||||
## Notifications
|
||||
|
||||
### Channel Best Practices
|
||||
|
||||
| Practice | Reason |
|
||||
|----------|--------|
|
||||
| Multiple channels | User can control each type |
|
||||
| Descriptive names | User understands purpose |
|
||||
| Appropriate importance | Match user expectation |
|
||||
| Don't share channels | Different content = different channel |
|
||||
|
||||
### Notification Priority
|
||||
|
||||
| Importance | Usage |
|
||||
|------------|-------|
|
||||
| HIGH | Time-sensitive (messages, calls) |
|
||||
| DEFAULT | Normal notifications |
|
||||
| LOW | Background info |
|
||||
| MIN | Minimal interruption |
|
||||
|
||||
### Notification Content Rules
|
||||
|
||||
| Do | Don't |
|
||||
|-----|-------|
|
||||
| Relevant information | Cross-promotion |
|
||||
| Clear, concise text | Advertising other products |
|
||||
| Actionable content | Unnecessary interruptions |
|
||||
| Set timeouts | Persistent non-ongoing notifications |
|
||||
|
||||
### Messaging Apps Requirements
|
||||
|
||||
| Feature | Description |
|
||||
|---------|-------------|
|
||||
| MessagingStyle | Use for conversation notifications |
|
||||
| Direct reply | Support inline reply action |
|
||||
| Conversation shortcuts | Enable direct share |
|
||||
| Bubbles | Support floating conversations |
|
||||
|
||||
### Notification Grouping
|
||||
|
||||
Group related notifications together with a summary notification. Set appropriate group keys and summary flags.
|
||||
|
||||
## Sharing
|
||||
|
||||
### Android Sharesheet
|
||||
|
||||
Use the system sharesheet for sharing content. Create an ACTION_SEND intent with appropriate type and extras, then use createChooser().
|
||||
|
||||
### Direct Share
|
||||
|
||||
Provide conversation shortcuts for Direct Share ranking:
|
||||
- Create ShortcutInfo for each conversation
|
||||
- Set appropriate categories
|
||||
- Push dynamic shortcuts
|
||||
|
||||
## Background Services
|
||||
|
||||
### Service Restrictions
|
||||
|
||||
| Rule | Implementation |
|
||||
|------|----------------|
|
||||
| Avoid long-running services | Use WorkManager |
|
||||
| No background starts (API 26+) | Use foreground service or JobScheduler |
|
||||
| Battery-efficient | Batch work, respect Doze |
|
||||
|
||||
### Poor Background Service Uses
|
||||
|
||||
| Don't Use For | Alternative |
|
||||
|---------------|-------------|
|
||||
| Maintaining network connection | FCM (push notifications) |
|
||||
| Persistent Bluetooth | Companion device manager |
|
||||
| Keeping GPS on | Geofencing, fused location |
|
||||
| Polling server | FCM or WorkManager |
|
||||
|
||||
## State Management
|
||||
|
||||
### State Preservation Requirements
|
||||
|
||||
| Scenario | Required Behavior |
|
||||
|----------|-------------------|
|
||||
| App switcher return | Exact previous state |
|
||||
| Device wake | Exact previous state |
|
||||
| Process death | Restore critical state |
|
||||
| Configuration change | Seamless transition |
|
||||
|
||||
### State Categories
|
||||
|
||||
| State Type | Storage |
|
||||
|------------|---------|
|
||||
| UI state (scroll, selection) | ViewModel + SavedState |
|
||||
| User input (forms) | SavedState |
|
||||
| Navigation | NavController state |
|
||||
| Persistent data | Room database |
|
||||
|
||||
## Navigation
|
||||
|
||||
### Back Button/Gesture
|
||||
|
||||
| Requirement | Implementation |
|
||||
|-------------|----------------|
|
||||
| System back | Navigate to previous screen |
|
||||
| Gesture navigation | Support back gesture |
|
||||
| No custom back buttons | Use system navigation |
|
||||
| Predictable | User knows what back does |
|
||||
|
||||
## Gestures
|
||||
|
||||
### Gesture Navigation Support
|
||||
|
||||
| Gesture | Default Action |
|
||||
|---------|----------------|
|
||||
| Swipe from left edge | Back |
|
||||
| Swipe up from bottom | Home |
|
||||
| Swipe up and hold | Recent apps |
|
||||
|
||||
### Custom Gestures
|
||||
|
||||
| Practice | Reason |
|
||||
|----------|--------|
|
||||
| Avoid edge swipes | Conflicts with navigation |
|
||||
| Provide alternatives | Not all users gesture-capable |
|
||||
| Test with gesture nav | Ensure no conflicts |
|
||||
|
||||
Handle system gesture insets to avoid conflicts with edge gestures.
|
||||
|
||||
## Functional Checklist
|
||||
|
||||
### Audio
|
||||
- [ ] Playback starts within 1 second
|
||||
- [ ] Audio focus requested and released
|
||||
- [ ] Responds to focus changes (duck/pause)
|
||||
- [ ] Background playback with notification
|
||||
- [ ] MediaSession integration
|
||||
|
||||
### Video
|
||||
- [ ] Picture-in-picture supported
|
||||
- [ ] HEVC encoding used
|
||||
- [ ] Playback position remembered
|
||||
- [ ] Captions supported
|
||||
|
||||
### Notifications
|
||||
- [ ] Appropriate channels defined
|
||||
- [ ] Correct importance levels
|
||||
- [ ] No promotional content
|
||||
- [ ] Grouped when appropriate
|
||||
- [ ] Timeouts set where applicable
|
||||
|
||||
### Messaging (if applicable)
|
||||
- [ ] MessagingStyle used
|
||||
- [ ] Direct reply supported
|
||||
- [ ] Conversation shortcuts
|
||||
- [ ] Bubbles supported
|
||||
|
||||
### Background
|
||||
- [ ] WorkManager for background work
|
||||
- [ ] No long-running services
|
||||
- [ ] Battery-efficient design
|
||||
|
||||
### Navigation
|
||||
- [ ] Standard back behavior
|
||||
- [ ] Gesture navigation supported
|
||||
- [ ] State preserved across lifecycle
|
||||
203
android-native-dev/references/motion-system.md
Normal file
203
android-native-dev/references/motion-system.md
Normal file
@@ -0,0 +1,203 @@
|
||||
# Motion System Guidelines
|
||||
|
||||
Animation and transition specifications for Material Design 3.
|
||||
|
||||
## Motion Principles
|
||||
|
||||
### Four Core Characteristics
|
||||
|
||||
| Principle | Description |
|
||||
|-----------|-------------|
|
||||
| **Responsive** | Quickly responds to user input at the point of interaction |
|
||||
| **Natural** | Follows real-world physics (gravity, friction, momentum) |
|
||||
| **Aware** | Elements are aware of surroundings and other elements |
|
||||
| **Intentional** | Guides focus to the right place at the right time |
|
||||
|
||||
## Duration Guidelines
|
||||
|
||||
### By Interaction Type
|
||||
|
||||
| Type | Duration | Usage |
|
||||
|------|----------|-------|
|
||||
| Micro | 50-100ms | Ripples, state changes, hover |
|
||||
| Short | 100-200ms | Simple transitions, toggles |
|
||||
| Medium | 200-300ms | Expanding, collapsing, revealing |
|
||||
| Long | 300-500ms | Complex choreography, page transitions |
|
||||
|
||||
### By Device Type
|
||||
|
||||
| Device | Typical Duration | Adjustment |
|
||||
|--------|------------------|------------|
|
||||
| Mobile | 300ms | Baseline |
|
||||
| Tablet | 390ms | +30% slower |
|
||||
| Desktop | 150-200ms | Faster, more responsive |
|
||||
| Wearable | 210ms | -30% faster |
|
||||
|
||||
### Duration Rules
|
||||
|
||||
- **Maximum**: Keep under 400ms for most transitions
|
||||
- **User-initiated**: Faster (closer to instant feedback)
|
||||
- **System-initiated**: Can be slightly longer
|
||||
- **Loading states**: Use indeterminate indicators for unknown duration
|
||||
|
||||
## Easing Curves
|
||||
|
||||
### Standard Curves
|
||||
|
||||
| Curve | Usage | Characteristics |
|
||||
|-------|-------|-----------------|
|
||||
| **Standard** | Most common transitions | Quick acceleration, slow deceleration |
|
||||
| **Emphasized** | Important/significant transitions | More dramatic curve |
|
||||
| **Decelerate** | Elements entering screen | Starts fast, ends slow |
|
||||
| **Accelerate** | Elements leaving screen permanently | Starts slow, ends fast |
|
||||
| **Sharp** | Elements temporarily leaving | Quick, snappy motion |
|
||||
|
||||
### Curve Values (Cubic Bezier)
|
||||
|
||||
| Curve | Value |
|
||||
|-------|-------|
|
||||
| Standard | cubic-bezier(0.2, 0.0, 0.0, 1.0) |
|
||||
| Emphasized | cubic-bezier(0.2, 0.0, 0.0, 1.0) |
|
||||
| Decelerate | cubic-bezier(0.0, 0.0, 0.0, 1.0) |
|
||||
| Accelerate | cubic-bezier(0.3, 0.0, 1.0, 1.0) |
|
||||
|
||||
## Movement Patterns
|
||||
|
||||
### Arc Motion
|
||||
|
||||
- Use natural, concave arcs for diagonal movement
|
||||
- Single-axis movement (horizontal/vertical only) stays straight
|
||||
- Elements entering/exiting screen move on single axis
|
||||
|
||||
### Choreography
|
||||
|
||||
- **Stagger**: Offset timing for related elements (20-40ms between)
|
||||
- **Cascade**: Sequential reveal from a focal point
|
||||
- **Shared motion**: Elements that move together maintain relationship
|
||||
|
||||
## Transition Patterns
|
||||
|
||||
### Container Transform
|
||||
|
||||
Best for: Navigation from card/list item to detail screen
|
||||
|
||||
- Origin container morphs into destination
|
||||
- Maintains visual continuity
|
||||
- Content fades during transformation
|
||||
|
||||
### Shared Axis
|
||||
|
||||
Best for: Same-level navigation (tabs, stepper)
|
||||
|
||||
| Axis | Direction | Usage |
|
||||
|------|-----------|-------|
|
||||
| X-axis | Horizontal | Tabs, horizontal paging |
|
||||
| Y-axis | Vertical | Vertical lists, feeds |
|
||||
| Z-axis | Depth | Parent-child relationships |
|
||||
|
||||
### Fade Through
|
||||
|
||||
Best for: Unrelated screen transitions
|
||||
|
||||
- Outgoing content fades out
|
||||
- Incoming content fades in
|
||||
- Brief overlap period
|
||||
- No shared elements
|
||||
|
||||
### Fade
|
||||
|
||||
Best for: Show/hide single elements
|
||||
|
||||
- Simple opacity change
|
||||
- Optionally combine with scale
|
||||
- Quick duration (100-200ms)
|
||||
|
||||
## Component-Specific Motion
|
||||
|
||||
### FAB
|
||||
|
||||
| State | Animation |
|
||||
|-------|-----------|
|
||||
| Appear | Scale up + fade in |
|
||||
| Disappear | Scale down + fade out |
|
||||
| Transform | Morph to extended FAB |
|
||||
| Press | Elevation change (3dp → 8dp) |
|
||||
|
||||
### Bottom Sheet
|
||||
|
||||
| State | Animation |
|
||||
|-------|-----------|
|
||||
| Expand | Slide up with decelerate curve |
|
||||
| Collapse | Slide down with accelerate curve |
|
||||
| Dismiss | Swipe down with velocity-based duration |
|
||||
|
||||
### Navigation
|
||||
|
||||
| Pattern | Animation |
|
||||
|---------|-----------|
|
||||
| Push | Incoming slides from right, outgoing shifts left |
|
||||
| Pop | Incoming slides from left, outgoing shifts right |
|
||||
| Modal | Slide up from bottom |
|
||||
|
||||
### Cards
|
||||
|
||||
| State | Animation |
|
||||
|-------|-----------|
|
||||
| Expand | Container transform to detail |
|
||||
| Press | Subtle elevation increase |
|
||||
| Reorder | Follow finger with physics |
|
||||
|
||||
## Loading & Progress
|
||||
|
||||
### Indeterminate Indicators
|
||||
|
||||
- Use for unknown duration
|
||||
- Continuous, looping animation
|
||||
- M3 Expressive: Customizable waveform and thickness
|
||||
|
||||
### Determinate Indicators
|
||||
|
||||
- Use when progress is measurable
|
||||
- Smooth, linear progression
|
||||
- Update frequently for responsiveness
|
||||
|
||||
### Skeleton Screens
|
||||
|
||||
- Show layout structure immediately
|
||||
- Subtle shimmer animation
|
||||
- Replace with content as it loads
|
||||
|
||||
## Accessibility Considerations
|
||||
|
||||
### Reduced Motion
|
||||
|
||||
- Respect prefers-reduced-motion setting
|
||||
- Provide alternatives:
|
||||
- Instant transitions (no animation)
|
||||
- Simple fade instead of complex motion
|
||||
- Static loading indicators
|
||||
|
||||
### Motion Duration
|
||||
|
||||
- Keep essential feedback < 100ms
|
||||
- Avoid motion that could trigger vestibular issues
|
||||
- Test with motion sensitivity settings enabled
|
||||
|
||||
## Implementation Notes
|
||||
|
||||
### Android Animation APIs
|
||||
|
||||
| API | Usage |
|
||||
|-----|-------|
|
||||
| MotionLayout | Complex, coordinated animations |
|
||||
| Transition | Activity/Fragment transitions |
|
||||
| Animator | Property animations |
|
||||
| AnimatedContent | Compose content transitions |
|
||||
| animateContentSize | Compose size changes |
|
||||
|
||||
### Performance Tips
|
||||
|
||||
- Use hardware layers for complex animations
|
||||
- Avoid animating layout properties (use transform)
|
||||
- Profile with GPU rendering tools
|
||||
- Target 60 FPS (16ms per frame)
|
||||
223
android-native-dev/references/performance-stability.md
Normal file
223
android-native-dev/references/performance-stability.md
Normal file
@@ -0,0 +1,223 @@
|
||||
# Performance & Stability Guidelines
|
||||
|
||||
Android Vitals thresholds, performance requirements, and stability best practices.
|
||||
|
||||
## Android Vitals Thresholds
|
||||
|
||||
### Core Metrics (Google Play)
|
||||
|
||||
Exceeding these thresholds affects app visibility on Google Play:
|
||||
|
||||
| Metric | Overall Threshold | Per Phone Model | Per Watch Model |
|
||||
|--------|-------------------|-----------------|-----------------|
|
||||
| User-perceived crash rate | **1.09%** | 8% | 4% |
|
||||
| User-perceived ANR rate | **0.47%** | 8% | 5% |
|
||||
| Excessive battery usage | 1% | - | 1% |
|
||||
| Excessive wake locks | 5% | - | - |
|
||||
|
||||
### Consequences of Exceeding Thresholds
|
||||
|
||||
- Reduced app visibility in Google Play
|
||||
- Warning label on store listing
|
||||
- Lower ranking in search results
|
||||
- Negative impact on user trust
|
||||
|
||||
## Startup Performance
|
||||
|
||||
### Requirements
|
||||
|
||||
| Metric | Target | Maximum |
|
||||
|--------|--------|---------|
|
||||
| Cold start | < 1 second | 2 seconds |
|
||||
| Warm start | < 500ms | 1 second |
|
||||
| Hot start | < 100ms | 500ms |
|
||||
|
||||
### If Startup Exceeds 2 Seconds
|
||||
|
||||
Must provide visual feedback:
|
||||
- Progress indicator
|
||||
- Splash screen with animation
|
||||
- Loading skeleton
|
||||
|
||||
### Optimization Techniques
|
||||
|
||||
| Technique | Impact |
|
||||
|-----------|--------|
|
||||
| Lazy initialization | Defer non-critical work |
|
||||
| Async loading | Move I/O off main thread |
|
||||
| View hierarchy optimization | Reduce layout depth |
|
||||
| App Startup library | Initialize components efficiently |
|
||||
| Baseline Profiles | Pre-compile hot paths |
|
||||
|
||||
## Rendering Performance
|
||||
|
||||
### Frame Rate Requirements
|
||||
|
||||
| Target | Frame Time | Notes |
|
||||
|--------|------------|-------|
|
||||
| 60 FPS | ≤ 16.67ms | Standard requirement |
|
||||
| 90 FPS | ≤ 11.11ms | High refresh rate displays |
|
||||
| 120 FPS | ≤ 8.33ms | Premium devices |
|
||||
|
||||
### Jank Detection
|
||||
|
||||
| Metric | Threshold | Severity |
|
||||
|--------|-----------|----------|
|
||||
| Slow frames | > 16ms | Warning |
|
||||
| Frozen frames | > 700ms | Critical |
|
||||
| Jank rate | > 1% of frames | Poor experience |
|
||||
|
||||
### Common Rendering Issues
|
||||
|
||||
| Issue | Cause | Solution |
|
||||
|-------|-------|----------|
|
||||
| Overdraw | Multiple layers drawn | Reduce background stacking |
|
||||
| Deep hierarchy | Complex view nesting | Use ConstraintLayout, Compose |
|
||||
| Main thread work | Blocking operations | Move to background thread |
|
||||
| Large bitmaps | Unoptimized images | Downsample, use vector |
|
||||
|
||||
## ANR Prevention
|
||||
|
||||
### ANR Triggers
|
||||
|
||||
| Scenario | Timeout |
|
||||
|----------|---------|
|
||||
| Input dispatch | 5 seconds |
|
||||
| Broadcast receiver | 10 seconds |
|
||||
| Service start | 20 seconds |
|
||||
|
||||
### Prevention Strategies
|
||||
|
||||
- Never perform network calls on main thread
|
||||
- Never perform database operations on main thread
|
||||
- Never perform file I/O on main thread
|
||||
- Use coroutines, RxJava, or other async mechanisms
|
||||
- Reduce synchronized block contention
|
||||
|
||||
### Common ANR Causes
|
||||
|
||||
| Cause | Solution |
|
||||
|-------|----------|
|
||||
| Network on main thread | Use coroutines/RxJava |
|
||||
| Database on main thread | Use Room with suspend |
|
||||
| File I/O on main thread | Use Dispatchers.IO |
|
||||
| Lock contention | Reduce synchronized blocks |
|
||||
| Dead locks | Careful threading design |
|
||||
|
||||
## Battery Optimization
|
||||
|
||||
### Wake Lock Guidelines
|
||||
|
||||
| Rule | Implementation |
|
||||
|------|----------------|
|
||||
| Minimize duration | Release as soon as possible |
|
||||
| Use appropriate type | PARTIAL_WAKE_LOCK only when needed |
|
||||
| Always release | Use try-finally or lifecycle |
|
||||
| Prefer WorkManager | System-managed scheduling |
|
||||
|
||||
### Background Restrictions
|
||||
|
||||
| Feature | Best Practice |
|
||||
|---------|---------------|
|
||||
| Background services | Use WorkManager instead |
|
||||
| Location | Request only when necessary |
|
||||
| Network | Batch requests, respect connectivity |
|
||||
| Alarms | Use inexact alarms when possible |
|
||||
|
||||
### Doze and App Standby
|
||||
|
||||
| Mode | Behavior | Adaptation |
|
||||
|------|----------|------------|
|
||||
| Doze | Limited network, alarms delayed | Use FCM for high-priority |
|
||||
| App Standby | Background work restricted | Use expedited WorkManager |
|
||||
| Buckets | Frequency limits by usage | Design for infrequent execution |
|
||||
|
||||
## Memory Management
|
||||
|
||||
### Memory Best Practices
|
||||
|
||||
| Practice | Benefit |
|
||||
|----------|---------|
|
||||
| Avoid memory leaks | Prevent OutOfMemoryError |
|
||||
| Use weak references | Allow garbage collection |
|
||||
| Recycle bitmaps | Reduce memory pressure |
|
||||
| Monitor heap | Profile regularly |
|
||||
|
||||
### Common Memory Issues
|
||||
|
||||
| Issue | Detection | Solution |
|
||||
|-------|-----------|----------|
|
||||
| Activity leak | LeakCanary | Fix lifecycle references |
|
||||
| Bitmap leak | Memory profiler | Recycle, use Glide/Coil |
|
||||
| Context leak | Static analysis | Use application context |
|
||||
| Handler leak | Lint warning | Use WeakReference |
|
||||
|
||||
## StrictMode
|
||||
|
||||
### What StrictMode Detects
|
||||
|
||||
| Category | Issues |
|
||||
|----------|--------|
|
||||
| Thread | Disk reads/writes, network, slow calls |
|
||||
| VM | Leaked objects, unsafe intents, content URI exposure |
|
||||
|
||||
Enable StrictMode in debug builds to detect violations during development.
|
||||
|
||||
## SDK Requirements
|
||||
|
||||
### Version Requirements
|
||||
|
||||
| Property | Requirement |
|
||||
|----------|-------------|
|
||||
| targetSdk | Latest Android SDK (Google Play requirement) |
|
||||
| compileSdk | Latest Android SDK |
|
||||
| minSdk | Based on target audience |
|
||||
|
||||
### Third-Party SDK Management
|
||||
|
||||
| Practice | Reason |
|
||||
|----------|--------|
|
||||
| Keep updated | Security fixes, compatibility |
|
||||
| Audit regularly | Remove unused dependencies |
|
||||
| Monitor crashes | SDKs can cause issues |
|
||||
| Check permissions | SDKs may request excessive permissions |
|
||||
|
||||
### Non-SDK Interface Restrictions
|
||||
|
||||
- Don't use reflection for hidden APIs
|
||||
- Use Android Studio lint to detect
|
||||
- APIs may break in future versions
|
||||
|
||||
## Monitoring and Profiling
|
||||
|
||||
### Tools
|
||||
|
||||
| Tool | Purpose |
|
||||
|------|---------|
|
||||
| Android Studio Profiler | CPU, memory, network, energy |
|
||||
| Android Vitals (Play Console) | Production crash/ANR data |
|
||||
| Firebase Performance | Real-time performance monitoring |
|
||||
| Perfetto | Advanced system tracing |
|
||||
| Benchmark library | Reproducible measurements |
|
||||
|
||||
### Key Metrics to Track
|
||||
|
||||
| Metric | Tool |
|
||||
|--------|------|
|
||||
| Startup time | Macrobenchmark |
|
||||
| Frame timing | JankStats |
|
||||
| Memory usage | Memory Profiler |
|
||||
| Network latency | Network Profiler |
|
||||
| Battery drain | Energy Profiler |
|
||||
|
||||
## Performance Checklist
|
||||
|
||||
- [ ] Cold startup < 2 seconds
|
||||
- [ ] Rendering at 60 FPS
|
||||
- [ ] No StrictMode violations
|
||||
- [ ] Crash rate < 1.09%
|
||||
- [ ] ANR rate < 0.47%
|
||||
- [ ] No memory leaks
|
||||
- [ ] Background work uses WorkManager
|
||||
- [ ] Wake locks properly released
|
||||
- [ ] SDKs up to date
|
||||
244
android-native-dev/references/privacy-security.md
Normal file
244
android-native-dev/references/privacy-security.md
Normal file
@@ -0,0 +1,244 @@
|
||||
# Privacy & Security Guidelines
|
||||
|
||||
Security best practices and privacy requirements for Android applications.
|
||||
|
||||
## Permissions
|
||||
|
||||
### Principle of Least Privilege
|
||||
|
||||
| Rule | Implementation |
|
||||
|------|----------------|
|
||||
| Request minimum | Only permissions essential for core features |
|
||||
| Request when needed | At point of use, not app startup |
|
||||
| Explain why | Show rationale before system dialog |
|
||||
| Degrade gracefully | App works (limited) if denied |
|
||||
|
||||
### Permission Request Flow
|
||||
|
||||
1. Check if already granted
|
||||
2. If not, show educational UI (rationale)
|
||||
3. Request permission
|
||||
4. Handle result (grant or denial)
|
||||
5. If denied, offer alternative or reduced functionality
|
||||
|
||||
### Sensitive Permissions
|
||||
|
||||
| Permission | Consideration |
|
||||
|------------|---------------|
|
||||
| Location | Use coarse if fine not needed |
|
||||
| Camera | Request only when capturing |
|
||||
| Microphone | Request only when recording |
|
||||
| Contacts | Consider contact picker intent |
|
||||
| Storage | Use scoped storage |
|
||||
| SMS/Call Log | Restricted, needs approval |
|
||||
|
||||
### Alternative Approaches
|
||||
|
||||
| Instead of... | Consider... |
|
||||
|---------------|-------------|
|
||||
| READ_CONTACTS | Contact picker intent |
|
||||
| ACCESS_FINE_LOCATION | Coarse location |
|
||||
| READ_EXTERNAL_STORAGE | Storage Access Framework |
|
||||
| CAMERA | Camera intent |
|
||||
|
||||
## Data Storage
|
||||
|
||||
### Storage Types
|
||||
|
||||
| Type | Security | Usage |
|
||||
|------|----------|-------|
|
||||
| Internal storage | Private to app | Sensitive data |
|
||||
| External storage | World-readable | Shared files only |
|
||||
| SharedPreferences | Private, unencrypted | Non-sensitive settings |
|
||||
| EncryptedSharedPreferences | Private, encrypted | Sensitive settings |
|
||||
| Room database | Private, optional encryption | Structured data |
|
||||
|
||||
### Sensitive Data Rules
|
||||
|
||||
| Rule | Implementation |
|
||||
|------|----------------|
|
||||
| Store internally | Use internal storage, not external |
|
||||
| Encrypt at rest | Use EncryptedSharedPreferences, SQLCipher |
|
||||
| Don't log | Never log PII or credentials |
|
||||
| Clear on logout | Wipe user data completely |
|
||||
|
||||
### Data Logging
|
||||
|
||||
Never log sensitive data such as passwords, emails, tokens, or personal information. Only log non-sensitive operational information.
|
||||
|
||||
## Network Security
|
||||
|
||||
### HTTPS Requirements
|
||||
|
||||
- All network traffic must use SSL/TLS
|
||||
- Configure Network Security Config
|
||||
- Don't allow cleartext traffic
|
||||
|
||||
### Network Security Config
|
||||
|
||||
Define a network security configuration that:
|
||||
- Disables cleartext traffic
|
||||
- Specifies trusted certificate authorities
|
||||
- Optionally implements certificate pinning for high-security apps
|
||||
|
||||
### Certificate Pinning (Optional)
|
||||
|
||||
For high-security apps, pin certificates to prevent MITM attacks. Include backup pins and plan for certificate rotation.
|
||||
|
||||
## User Identity
|
||||
|
||||
### Credential Manager
|
||||
|
||||
Integrate Credential Manager for unified sign-in supporting:
|
||||
- Passkeys
|
||||
- Federated identity
|
||||
- Traditional passwords
|
||||
|
||||
### Biometric Authentication
|
||||
|
||||
Use biometric authentication for sensitive operations like:
|
||||
- Financial transactions
|
||||
- Accessing sensitive documents
|
||||
- Confirming identity
|
||||
|
||||
### Autofill Support
|
||||
|
||||
Provide autofill hints on input fields:
|
||||
- emailAddress, username for identity fields
|
||||
- password for credential fields
|
||||
- creditCardNumber, postalCode for payment fields
|
||||
|
||||
## App Components Security
|
||||
|
||||
### Exported Components
|
||||
|
||||
| Component | Exported Rule |
|
||||
|-----------|---------------|
|
||||
| Launcher Activity | exported="true" with intent-filter |
|
||||
| Internal Activity | exported="false" |
|
||||
| Internal Service | exported="false" |
|
||||
| Content Provider (shared) | exported="true" with permissions |
|
||||
|
||||
Always explicitly set the exported attribute on all components.
|
||||
|
||||
### Custom Permissions
|
||||
|
||||
Use signature-level protection for custom permissions that control access between your own apps.
|
||||
|
||||
### Intent Validation
|
||||
|
||||
- Validate all intent data before use
|
||||
- Check URI scheme and host
|
||||
- Use explicit intents when possible
|
||||
- Don't trust extras from unknown sources
|
||||
|
||||
### PendingIntent Security
|
||||
|
||||
Use FLAG_IMMUTABLE for PendingIntents unless mutability is required. This prevents other apps from modifying the intent.
|
||||
|
||||
## WebView Security
|
||||
|
||||
### Safe WebView Configuration
|
||||
|
||||
| Setting | Recommendation |
|
||||
|---------|----------------|
|
||||
| JavaScript | Disabled unless required |
|
||||
| File access | Disabled |
|
||||
| Content access | Disabled |
|
||||
| Universal file access | Never enable |
|
||||
|
||||
### Avoid Dangerous Practices
|
||||
|
||||
| Don't | Why |
|
||||
|-------|-----|
|
||||
| setAllowUniversalAccessFromFileURLs(true) | Security vulnerability |
|
||||
| addJavascriptInterface() with untrusted content | Code injection risk |
|
||||
| Load untrusted URLs | XSS, phishing |
|
||||
|
||||
## Cryptography
|
||||
|
||||
### Use Platform APIs
|
||||
|
||||
- Use Android Keystore for key storage
|
||||
- Use standard algorithms (AES-GCM, RSA)
|
||||
- Never implement custom cryptography
|
||||
- Use SecureRandom for random generation
|
||||
|
||||
### Avoid
|
||||
|
||||
- Custom encryption implementations
|
||||
- Weak algorithms (MD5, SHA1 for security)
|
||||
- Hardcoded keys or secrets
|
||||
- Non-cryptographic random generators
|
||||
|
||||
## Code Security
|
||||
|
||||
### No Dynamic Code Loading
|
||||
|
||||
| Don't | Do Instead |
|
||||
|-------|------------|
|
||||
| Load code at runtime | Android App Bundles |
|
||||
| Download DEX files | Play Feature Delivery |
|
||||
| Execute scripts | Predefined functionality |
|
||||
|
||||
### Debug Code Removal
|
||||
|
||||
- Set debuggable=false in release builds
|
||||
- Enable minification (R8/ProGuard)
|
||||
- Remove debug libraries from production
|
||||
|
||||
## Device Identifiers
|
||||
|
||||
### Don't Use Hardware IDs
|
||||
|
||||
| Identifier | Status |
|
||||
|------------|--------|
|
||||
| IMEI | Don't use |
|
||||
| MAC address | Don't use |
|
||||
| Serial number | Don't use |
|
||||
| Android ID | Limited use only |
|
||||
|
||||
### Recommended Alternatives
|
||||
|
||||
| Use Case | Solution |
|
||||
|----------|----------|
|
||||
| Analytics | Firebase Analytics ID |
|
||||
| Advertising | Advertising ID (resettable) |
|
||||
| App instance | Generate UUID on install |
|
||||
| User identity | Account-based ID |
|
||||
|
||||
## Google Play Policies
|
||||
|
||||
### Data Safety
|
||||
|
||||
- Declare all data collected
|
||||
- Explain data usage
|
||||
- Provide privacy policy
|
||||
- Allow data deletion requests
|
||||
|
||||
### User Data Policy
|
||||
|
||||
| Rule | Requirement |
|
||||
|------|-------------|
|
||||
| Transparency | Clear disclosure of data use |
|
||||
| Security | Protect user data appropriately |
|
||||
| Minimization | Collect only what's needed |
|
||||
| Control | Allow users to manage data |
|
||||
|
||||
## Security Checklist
|
||||
|
||||
- [ ] Permissions requested only when needed
|
||||
- [ ] Permissions explained to user
|
||||
- [ ] Sensitive data stored internally
|
||||
- [ ] No sensitive data in logs
|
||||
- [ ] All network traffic over HTTPS
|
||||
- [ ] Network security config defined
|
||||
- [ ] Components export status explicit
|
||||
- [ ] Custom permissions use signature protection
|
||||
- [ ] Intents validated before use
|
||||
- [ ] PendingIntents use FLAG_IMMUTABLE
|
||||
- [ ] WebView configured securely
|
||||
- [ ] Platform crypto APIs used
|
||||
- [ ] No debug code in production
|
||||
- [ ] No hardware IDs used
|
||||
- [ ] Privacy policy available
|
||||
246
android-native-dev/references/visual-design.md
Normal file
246
android-native-dev/references/visual-design.md
Normal file
@@ -0,0 +1,246 @@
|
||||
# Visual Design Guidelines
|
||||
|
||||
Detailed specifications for colors, typography, spacing, elevation, and shapes in Material Design 3.
|
||||
|
||||
## Color System
|
||||
|
||||
### Color Roles (Tokens)
|
||||
|
||||
Material Design 3 uses a token-based color system with three accent groups:
|
||||
|
||||
| Role | Usage |
|
||||
|------|-------|
|
||||
| **Primary** | Key components, FAB, prominent buttons |
|
||||
| **Secondary** | Less prominent components, filters, chips |
|
||||
| **Tertiary** | Accent, complementary elements |
|
||||
| **Error** | Error states, destructive actions |
|
||||
| **Surface** | Backgrounds, cards, dialogs |
|
||||
|
||||
Each role includes variants: base color, onColor, container, onContainer.
|
||||
|
||||
### Color Contrast Requirements
|
||||
|
||||
| Element | Minimum Contrast Ratio | Notes |
|
||||
|---------|----------------------|-------|
|
||||
| Body text | **4.5:1** | WCAG AA compliance |
|
||||
| Large text (18sp+) | **3:1** | 14sp bold also qualifies |
|
||||
| UI components | **3:1** | Icons, borders, controls |
|
||||
| Focus indicators | **3:1** | Must be clearly visible |
|
||||
|
||||
### Recommended Color Palettes
|
||||
|
||||
#### Modern Professional (Business Apps)
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #1976D2 | Blue 700 |
|
||||
| Secondary | #455A64 | Blue Grey 700 |
|
||||
| Tertiary | #00897B | Teal 600 |
|
||||
| Background | #FAFAFA | Grey 50 |
|
||||
|
||||
#### Vibrant & Playful (Consumer Apps)
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #6200EE | Deep Purple |
|
||||
| Secondary | #03DAC6 | Teal Accent |
|
||||
| Tertiary | #FF5722 | Deep Orange |
|
||||
| Background | #FFFFFF | White |
|
||||
|
||||
#### Dark & Elegant (Premium Apps)
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #BB86FC | Purple 200 |
|
||||
| Secondary | #03DAC6 | Teal 200 |
|
||||
| Tertiary | #CF6679 | Red 200 |
|
||||
| Background | #121212 | Dark surface |
|
||||
|
||||
#### Nature & Wellness (Health Apps)
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #4CAF50 | Green 500 |
|
||||
| Secondary | #8BC34A | Light Green 500 |
|
||||
| Tertiary | #FFEB3B | Yellow 500 |
|
||||
| Background | #F1F8E9 | Light Green 50 |
|
||||
|
||||
#### Finance & Trust (Banking Apps)
|
||||
|
||||
| Role | Color | Name |
|
||||
|------|-------|------|
|
||||
| Primary | #00695C | Teal 800 |
|
||||
| Secondary | #37474F | Blue Grey 800 |
|
||||
| Tertiary | #FFC107 | Amber 500 |
|
||||
| Background | #ECEFF1 | Blue Grey 50 |
|
||||
|
||||
### Dark Theme Requirements
|
||||
|
||||
- Background: #121212 or darker
|
||||
- Surface colors use elevation-based tonal overlay
|
||||
- Primary colors should be lighter variants (200-300 range)
|
||||
- Maintain contrast ratios in dark mode
|
||||
- Test all states (hover, focus, pressed) in dark mode
|
||||
|
||||
## Typography System
|
||||
|
||||
### Type Scale
|
||||
|
||||
| Style | Size | Weight | Line Height | Usage |
|
||||
|-------|------|--------|-------------|-------|
|
||||
| Display Large | 57sp | 400 | 64sp | Hero text |
|
||||
| Display Medium | 45sp | 400 | 52sp | Large headers |
|
||||
| Display Small | 36sp | 400 | 44sp | Section headers |
|
||||
| Headline Large | 32sp | 400 | 40sp | Screen titles |
|
||||
| Headline Medium | 28sp | 400 | 36sp | Subsection titles |
|
||||
| Headline Small | 24sp | 400 | 32sp | Card titles |
|
||||
| Title Large | 22sp | 400 | 28sp | App bar titles |
|
||||
| Title Medium | 16sp | 500 | 24sp | List item titles |
|
||||
| Title Small | 14sp | 500 | 20sp | Tabs |
|
||||
| Body Large | 16sp | 400 | 24sp | Primary body text |
|
||||
| Body Medium | 14sp | 400 | 20sp | Secondary body text |
|
||||
| Body Small | 12sp | 400 | 16sp | Captions |
|
||||
| Label Large | 14sp | 500 | 20sp | Button text |
|
||||
| Label Medium | 12sp | 500 | 16sp | Navigation labels |
|
||||
| Label Small | 11sp | 500 | 16sp | Badges |
|
||||
|
||||
### Recommended Fonts
|
||||
|
||||
| Category | Fonts |
|
||||
|----------|-------|
|
||||
| Primary | Roboto (system default) |
|
||||
| Display | Roboto Serif, Google Sans |
|
||||
| Monospace | Roboto Mono, JetBrains Mono |
|
||||
|
||||
### Text Readability
|
||||
|
||||
- **Line length**: 45-75 characters per line (including spaces)
|
||||
- **Paragraph spacing**: 1.5x line height between paragraphs
|
||||
- **Letter spacing**: Use default unless brand requires adjustment
|
||||
- **Text alignment**: Left-aligned for body text (LTR languages)
|
||||
|
||||
## Spacing & Layout
|
||||
|
||||
### 8dp Grid System
|
||||
|
||||
All spacing values should be multiples of 8dp (with 4dp for fine adjustments).
|
||||
|
||||
| Token | Value | Usage |
|
||||
|-------|-------|-------|
|
||||
| xs | 4dp | Icon padding, fine adjustments |
|
||||
| sm | 8dp | Tight spacing, inline elements |
|
||||
| md | 16dp | Default padding, card content |
|
||||
| lg | 24dp | Section spacing |
|
||||
| xl | 32dp | Large gaps, group separation |
|
||||
| xxl | 48dp | Screen margins, major sections |
|
||||
|
||||
### Component Dimensions
|
||||
|
||||
| Component | Height | Min Width | Notes |
|
||||
|-----------|--------|-----------|-------|
|
||||
| Button | 40dp | 64dp | Touch target 48dp |
|
||||
| FAB | 56dp | 56dp | Standard size |
|
||||
| Mini FAB | 40dp | 40dp | Secondary actions |
|
||||
| Extended FAB | 56dp | 80dp | With text label |
|
||||
| Text Field | 56dp | 280dp | Including label |
|
||||
| App Bar | 64dp | - | Top app bar |
|
||||
| Bottom Nav | 80dp | - | With labels |
|
||||
| Nav Rail | - | 80dp | Tablet/desktop |
|
||||
| List Item | 56-88dp | - | Depends on content |
|
||||
| Chip | 32dp | - | Filter/action chips |
|
||||
|
||||
### Touch Targets
|
||||
|
||||
| Type | Size | Notes |
|
||||
|------|------|-------|
|
||||
| Minimum | 48 × 48dp | WCAG requirement |
|
||||
| Recommended | 56 × 56dp | Primary actions |
|
||||
| Kids apps | 56dp+ | Larger for motor skills |
|
||||
| Spacing | 8dp minimum | Between adjacent targets |
|
||||
|
||||
## Elevation & Shadows
|
||||
|
||||
### Elevation Levels
|
||||
|
||||
| Level | Elevation | Usage |
|
||||
|-------|-----------|-------|
|
||||
| Level 0 | 0dp | Flat surfaces |
|
||||
| Level 1 | 1dp | Cards, elevated buttons |
|
||||
| Level 2 | 3dp | FAB (resting), raised elements |
|
||||
| Level 3 | 6dp | Navigation drawer, bottom sheet |
|
||||
| Level 4 | 8dp | FAB (pressed), menus |
|
||||
| Level 5 | 12dp | Dialogs, modal surfaces |
|
||||
|
||||
### Shadow Guidelines
|
||||
|
||||
- Use elevation consistently for same component types
|
||||
- Higher elevation = more important/prominent
|
||||
- In dark theme, use surface tint instead of shadows
|
||||
- Avoid excessive elevation (keeps UI grounded)
|
||||
|
||||
## Shape System
|
||||
|
||||
### Corner Radius
|
||||
|
||||
| Size | Radius | Usage |
|
||||
|------|--------|-------|
|
||||
| None | 0dp | Sharp edges, dividers |
|
||||
| Extra Small | 4dp | Badges, small chips |
|
||||
| Small | 8dp | Buttons, chips, small cards |
|
||||
| Medium | 12dp | Cards, dialogs, text fields |
|
||||
| Large | 16dp | FAB, bottom sheets |
|
||||
| Extra Large | 28dp | Large sheets, expanded cards |
|
||||
| Full | 50% | Pills, avatars, circular buttons |
|
||||
|
||||
### M3 Expressive Shapes
|
||||
|
||||
Material 3 Expressive introduces 35 new decorative shapes:
|
||||
- Organic curves
|
||||
- Asymmetric corners
|
||||
- Cut corners
|
||||
- Scalloped edges
|
||||
|
||||
Use sparingly for brand differentiation and visual interest.
|
||||
|
||||
### Shape Consistency Rules
|
||||
|
||||
- Same component type = same shape
|
||||
- Related components should share shape family
|
||||
- Don't mix too many shape styles on one screen
|
||||
- Consider shape in dark/light theme transitions
|
||||
|
||||
## Icons
|
||||
|
||||
### Size Specifications
|
||||
|
||||
| Size | Dimensions | Usage |
|
||||
|------|------------|-------|
|
||||
| Small | 20 × 20dp | Compact UI, inline |
|
||||
| Standard | 24 × 24dp | Default for most uses |
|
||||
| Large | 40 × 40dp | Emphasis, empty states |
|
||||
|
||||
### Icon Guidelines
|
||||
|
||||
- **Touch target**: Always wrap in 48dp minimum clickable area
|
||||
- **Style**: Outlined (default), Filled (selected/active states)
|
||||
- **Stroke width**: 2dp for outlined icons
|
||||
- **Optical alignment**: May need visual adjustments
|
||||
- **Color**: Use semantic colors (primary, error, etc.)
|
||||
|
||||
### Recommended Icon Sets
|
||||
|
||||
| Set | Usage |
|
||||
|-----|-------|
|
||||
| Material Symbols | Recommended, variable font support |
|
||||
| Material Icons | Legacy, still widely used |
|
||||
|
||||
### Adaptive Icons (App Icon)
|
||||
|
||||
| Property | Value |
|
||||
|----------|-------|
|
||||
| Canvas size | 108 × 108dp |
|
||||
| Safe zone | 66 × 66dp (centered circle) |
|
||||
| Logo size | 48-66dp |
|
||||
| Max display | 72 × 72dp |
|
||||
| Layers | Foreground + Background (both 108dp) |
|
||||
| Android 13+ | Include monochrome layer for theming |
|
||||
42
frontend-design/SKILL.md
Normal file
42
frontend-design/SKILL.md
Normal file
@@ -0,0 +1,42 @@
|
||||
---
|
||||
name: frontend-design
|
||||
description: Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML/CSS layouts, or when styling/beautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.
|
||||
license: Complete terms in LICENSE.txt
|
||||
---
|
||||
|
||||
This skill guides creation of distinctive, production-grade frontend interfaces that avoid generic "AI slop" aesthetics. Implement real working code with exceptional attention to aesthetic details and creative choices.
|
||||
|
||||
The user provides frontend requirements: a component, page, application, or interface to build. They may include context about the purpose, audience, or technical constraints.
|
||||
|
||||
## Design Thinking
|
||||
|
||||
Before coding, understand the context and commit to a BOLD aesthetic direction:
|
||||
- **Purpose**: What problem does this interface solve? Who uses it?
|
||||
- **Tone**: Pick an extreme: brutally minimal, maximalist chaos, retro-futuristic, organic/natural, luxury/refined, playful/toy-like, editorial/magazine, brutalist/raw, art deco/geometric, soft/pastel, industrial/utilitarian, etc. There are so many flavors to choose from. Use these for inspiration but design one that is true to the aesthetic direction.
|
||||
- **Constraints**: Technical requirements (framework, performance, accessibility).
|
||||
- **Differentiation**: What makes this UNFORGETTABLE? What's the one thing someone will remember?
|
||||
|
||||
**CRITICAL**: Choose a clear conceptual direction and execute it with precision. Bold maximalism and refined minimalism both work - the key is intentionality, not intensity.
|
||||
|
||||
Then implement working code (HTML/CSS/JS, React, Vue, etc.) that is:
|
||||
- Production-grade and functional
|
||||
- Visually striking and memorable
|
||||
- Cohesive with a clear aesthetic point-of-view
|
||||
- Meticulously refined in every detail
|
||||
|
||||
## Frontend Aesthetics Guidelines
|
||||
|
||||
Focus on:
|
||||
- **Typography**: Choose fonts that are beautiful, unique, and interesting. Avoid generic fonts like Arial and Inter; opt instead for distinctive choices that elevate the frontend's aesthetics; unexpected, characterful font choices. Pair a distinctive display font with a refined body font.
|
||||
- **Color & Theme**: Commit to a cohesive aesthetic. Use CSS variables for consistency. Dominant colors with sharp accents outperform timid, evenly-distributed palettes.
|
||||
- **Motion**: Use animations for effects and micro-interactions. Prioritize CSS-only solutions for HTML. Use Motion library for React when available. Focus on high-impact moments: one well-orchestrated page load with staggered reveals (animation-delay) creates more delight than scattered micro-interactions. Use scroll-triggering and hover states that surprise.
|
||||
- **Spatial Composition**: Unexpected layouts. Asymmetry. Overlap. Diagonal flow. Grid-breaking elements. Generous negative space OR controlled density.
|
||||
- **Backgrounds & Visual Details**: Create atmosphere and depth rather than defaulting to solid colors. Add contextual effects and textures that match the overall aesthetic. Apply creative forms like gradient meshes, noise textures, geometric patterns, layered transparencies, dramatic shadows, decorative borders, custom cursors, and grain overlays.
|
||||
|
||||
NEVER use generic AI-generated aesthetics like overused font families (Inter, Roboto, Arial, system fonts), cliched color schemes (particularly purple gradients on white backgrounds), predictable layouts and component patterns, and cookie-cutter design that lacks context-specific character.
|
||||
|
||||
Interpret creatively and make unexpected choices that feel genuinely designed for the context. No design should be the same. Vary between light and dark themes, different fonts, different aesthetics. NEVER converge on common choices (Space Grotesk, for example) across generations.
|
||||
|
||||
**IMPORTANT**: Match implementation complexity to the aesthetic vision. Maximalist designs need elaborate code with extensive animations and effects. Minimalist or refined designs need restraint, precision, and careful attention to spacing, typography, and subtle details. Elegance comes from executing the vision well.
|
||||
|
||||
Remember: Claude is capable of extraordinary creative work. Don't hold back, show what can truly be created when thinking outside the box and committing fully to a distinctive vision.
|
||||
567
frontend-dev/SKILL.md
Normal file
567
frontend-dev/SKILL.md
Normal file
@@ -0,0 +1,567 @@
|
||||
---
|
||||
name: frontend-dev
|
||||
description: |
|
||||
Full-stack frontend development combining premium UI design, cinematic animations,
|
||||
AI-generated media assets, persuasive copywriting, and visual art. Builds complete,
|
||||
visually striking web pages with real media, advanced motion, and compelling copy.
|
||||
Use when: building landing pages, marketing sites, product pages, dashboards,
|
||||
generating media assets (image/video/audio/music), writing conversion copy,
|
||||
creating generative art, or implementing cinematic scroll animations.
|
||||
license: MIT
|
||||
metadata:
|
||||
version: "1.0.0"
|
||||
category: frontend
|
||||
sources:
|
||||
- Framer Motion documentation
|
||||
- GSAP / GreenSock documentation
|
||||
- Three.js documentation
|
||||
- Tailwind CSS documentation
|
||||
- React / Next.js documentation
|
||||
- AIDA Framework (Elmo Lewis)
|
||||
- p5.js documentation
|
||||
---
|
||||
|
||||
# Frontend Studio
|
||||
|
||||
Build complete, production-ready frontend pages by orchestrating 5 specialized capabilities: design engineering, motion systems, AI-generated assets, persuasive copy, and generative art.
|
||||
|
||||
## Invocation
|
||||
|
||||
```
|
||||
/frontend-dev <request>
|
||||
```
|
||||
|
||||
The user provides their request as natural language (e.g. "build a landing page for a music streaming app").
|
||||
|
||||
## Skill Structure
|
||||
|
||||
```
|
||||
frontend-dev/
|
||||
├── SKILL.md # Core skill (this file)
|
||||
├── scripts/ # Asset generation scripts
|
||||
│ ├── minimax_tts.py # Text-to-speech
|
||||
│ ├── minimax_music.py # Music generation
|
||||
│ ├── minimax_video.py # Video generation (async)
|
||||
│ └── minimax_image.py # Image generation
|
||||
├── references/ # Detailed guides (read as needed)
|
||||
│ ├── minimax-cli-reference.md # CLI flags quick reference
|
||||
│ ├── asset-prompt-guide.md # Asset prompt engineering rules
|
||||
│ ├── minimax-tts-guide.md # TTS usage & voices
|
||||
│ ├── minimax-music-guide.md # Music prompts & lyrics format
|
||||
│ ├── minimax-video-guide.md # Camera commands & models
|
||||
│ ├── minimax-image-guide.md # Ratios & batch generation
|
||||
│ ├── minimax-voice-catalog.md # All voice IDs
|
||||
│ ├── motion-recipes.md # Animation code snippets
|
||||
│ ├── env-setup.md # Environment setup
|
||||
│ └── troubleshooting.md # Common issues
|
||||
├── templates/ # Visual art templates
|
||||
│ ├── viewer.html # p5.js interactive art base
|
||||
│ └── generator_template.js # p5.js code reference
|
||||
└── canvas-fonts/ # Static art fonts (TTF + licenses)
|
||||
```
|
||||
|
||||
## Project Structure
|
||||
|
||||
### Assets (Universal)
|
||||
|
||||
All frameworks use the same asset organization:
|
||||
|
||||
```
|
||||
assets/
|
||||
├── images/
|
||||
│ ├── hero-landing-1710xxx.webp
|
||||
│ ├── icon-feature-01.webp
|
||||
│ └── bg-pattern.svg
|
||||
├── videos/
|
||||
│ ├── hero-bg-1710xxx.mp4
|
||||
│ └── demo-preview.mp4
|
||||
└── audio/
|
||||
├── bgm-ambient-1710xxx.mp3
|
||||
└── tts-intro-1710xxx.mp3
|
||||
```
|
||||
|
||||
**Asset naming:** `{type}-{descriptor}-{timestamp}.{ext}`
|
||||
|
||||
### By Framework
|
||||
|
||||
| Framework | Asset Location | Component Location |
|
||||
|-----------|---------------|-------------------|
|
||||
| **Pure HTML** | `./assets/` | N/A (inline or `./js/`) |
|
||||
| **React/Next.js** | `public/assets/` | `src/components/` |
|
||||
| **Vue/Nuxt** | `public/assets/` | `src/components/` |
|
||||
| **Svelte/SvelteKit** | `static/assets/` | `src/lib/components/` |
|
||||
| **Astro** | `public/assets/` | `src/components/` |
|
||||
|
||||
### Pure HTML
|
||||
|
||||
```
|
||||
project/
|
||||
├── index.html
|
||||
├── assets/
|
||||
│ ├── images/
|
||||
│ ├── videos/
|
||||
│ └── audio/
|
||||
├── css/
|
||||
│ └── styles.css
|
||||
└── js/
|
||||
└── main.js # Animations (GSAP/vanilla)
|
||||
```
|
||||
|
||||
### React / Next.js
|
||||
|
||||
```
|
||||
project/
|
||||
├── public/assets/ # Static assets
|
||||
├── src/
|
||||
│ ├── components/
|
||||
│ │ ├── ui/ # Button, Card, Input
|
||||
│ │ ├── sections/ # Hero, Features, CTA
|
||||
│ │ └── motion/ # RevealSection, StaggerGrid
|
||||
│ ├── lib/
|
||||
│ ├── styles/
|
||||
│ └── app/ # Pages
|
||||
└── package.json
|
||||
```
|
||||
|
||||
### Vue / Nuxt
|
||||
|
||||
```
|
||||
project/
|
||||
├── public/assets/
|
||||
├── src/ # or root for Nuxt
|
||||
│ ├── components/
|
||||
│ │ ├── ui/
|
||||
│ │ ├── sections/
|
||||
│ │ └── motion/
|
||||
│ ├── composables/ # Shared logic
|
||||
│ ├── pages/
|
||||
│ └── assets/ # Processed assets (optional)
|
||||
└── package.json
|
||||
```
|
||||
|
||||
### Astro
|
||||
|
||||
```
|
||||
project/
|
||||
├── public/assets/
|
||||
├── src/
|
||||
│ ├── components/ # .astro, .tsx, .vue, .svelte
|
||||
│ ├── layouts/
|
||||
│ ├── pages/
|
||||
│ └── styles/
|
||||
└── package.json
|
||||
```
|
||||
|
||||
**Component naming:** PascalCase (`HeroSection.tsx`, `HeroSection.vue`, `HeroSection.astro`)
|
||||
|
||||
---
|
||||
|
||||
## Compliance
|
||||
|
||||
**All rules in this skill are mandatory. Violating any rule is a blocking error — fix before proceeding or delivering.**
|
||||
|
||||
---
|
||||
|
||||
## Workflow
|
||||
### Phase 1: Design Architecture
|
||||
1. Analyze the request — determine page type and context
|
||||
2. Set design dials based on page type
|
||||
3. Plan layout sections and identify asset needs
|
||||
|
||||
### Phase 2: Motion Architecture
|
||||
1. Select animation tools per section (see Tool Selection Matrix)
|
||||
2. Plan motion sequences following performance guardrails
|
||||
|
||||
### Phase 3: Asset Generation
|
||||
Generate all image/video/audio assets using `scripts/`. NEVER use placeholder URLs (unsplash, picsum, placeholder.com, via.placeholder, placehold.co, etc.) or external URLs.
|
||||
|
||||
1. Parse asset requirements (type, style, spec, usage)
|
||||
2. Craft optimized prompts, show to user, confirm before generating
|
||||
3. Execute via scripts, save to project — do NOT proceed to Phase 5 until all assets are saved locally
|
||||
|
||||
### Phase 4: Copywriting & Content
|
||||
Follow copywriting frameworks (AIDA, PAS, FAB) to craft all text content. Do NOT use "Lorem ipsum" — write real copy.
|
||||
|
||||
### Phase 5: Build UI
|
||||
Scaffold the project and build each section following Design and Motion rules. Integrate generated assets and copy. All `<img>`, `<video>`, `<source>`, and CSS `background-image` MUST reference local assets from Phase 3.
|
||||
|
||||
### Phase 6: Quality Gates
|
||||
Run final checklist (see Quality Gates section).
|
||||
|
||||
---
|
||||
|
||||
# 1. Design Engineering
|
||||
|
||||
## 1.1 Baseline Configuration
|
||||
|
||||
| Dial | Default | Range |
|
||||
|------|---------|-------|
|
||||
| DESIGN_VARIANCE | 8 | 1=Symmetry, 10=Asymmetric |
|
||||
| MOTION_INTENSITY | 6 | 1=Static, 10=Cinematic |
|
||||
| VISUAL_DENSITY | 4 | 1=Airy, 10=Packed |
|
||||
|
||||
Adapt dynamically based on user requests.
|
||||
|
||||
## 1.2 Architecture Conventions
|
||||
- **DEPENDENCY VERIFICATION:** Check `package.json` before importing any library. Output install command if missing.
|
||||
- **Framework:** React/Next.js. Default to Server Components. Interactive components must be isolated `"use client"` leaf components.
|
||||
- **Styling:** Tailwind CSS. Check version in `package.json` — NEVER mix v3/v4 syntax.
|
||||
- **ANTI-EMOJI POLICY:** NEVER use emojis anywhere. Use Phosphor or Radix icons only.
|
||||
- **Viewport:** Use `min-h-[100dvh]` not `h-screen`. Use CSS Grid not flex percentage math.
|
||||
- **Layout:** `max-w-[1400px] mx-auto` or `max-w-7xl`.
|
||||
|
||||
## 1.3 Design Rules
|
||||
| Rule | Directive |
|
||||
|------|-----------|
|
||||
| Typography | Headlines: `text-4xl md:text-6xl tracking-tighter`. Body: `text-base leading-relaxed max-w-[65ch]`. **NEVER** use Inter — use Geist/Outfit/Satoshi. **NEVER** use Serif on dashboards. |
|
||||
| Color | Max 1 accent, saturation < 80%. **NEVER** use AI purple/blue. Stick to one palette. |
|
||||
| Layout | **NEVER** use centered heroes when VARIANCE > 4. Force split-screen or asymmetric layouts. |
|
||||
| Cards | **NEVER** use generic cards when DENSITY > 7. Use `border-t`, `divide-y`, or spacing. |
|
||||
| States | **ALWAYS** implement: Loading (skeleton), Empty, Error, Tactile feedback (`scale-[0.98]`). |
|
||||
| Forms | Label above input. Error below. `gap-2` for input blocks. |
|
||||
|
||||
## 1.4 Anti-Slop Techniques
|
||||
|
||||
- **Liquid Glass:** `backdrop-blur` + `border-white/10` + `shadow-[inset_0_1px_0_rgba(255,255,255,0.1)]`
|
||||
- **Magnetic Buttons:** Use `useMotionValue`/`useTransform` — never `useState` for continuous animations
|
||||
- **Perpetual Motion:** When INTENSITY > 5, add infinite micro-animations (Pulse, Float, Shimmer)
|
||||
- **Layout Transitions:** Use Framer `layout` and `layoutId` props
|
||||
- **Stagger:** Use `staggerChildren` or CSS `animation-delay: calc(var(--index) * 100ms)`
|
||||
|
||||
## 1.5 Forbidden Patterns
|
||||
| Category | Banned |
|
||||
|----------|--------|
|
||||
| Visual | Neon glows, pure black (#000), oversaturated accents, gradient text on headers, custom cursors |
|
||||
| Typography | Inter font, oversized H1s, Serif on dashboards |
|
||||
| Layout | 3-column equal card rows, floating elements with awkward gaps |
|
||||
| Components | Default shadcn/ui without customization |
|
||||
|
||||
## 1.6 Creative Arsenal
|
||||
|
||||
| Category | Patterns |
|
||||
|----------|----------|
|
||||
| Navigation | Dock magnification, Magnetic button, Gooey menu, Dynamic island, Radial menu, Speed dial, Mega menu |
|
||||
| Layout | Bento grid, Masonry, Chroma grid, Split-screen scroll, Curtain reveal |
|
||||
| Cards | Parallax tilt, Spotlight border, Glassmorphism, Holographic foil, Swipe stack, Morphing modal |
|
||||
| Scroll | Sticky stack, Horizontal hijack, Locomotive sequence, Zoom parallax, Progress path, Liquid swipe |
|
||||
| Gallery | Dome gallery, Coverflow, Drag-to-pan, Accordion slider, Hover trail, Glitch effect |
|
||||
| Text | Kinetic marquee, Text mask reveal, Scramble effect, Circular path, Gradient stroke, Kinetic grid |
|
||||
| Micro | Particle explosion, Pull-to-refresh, Skeleton shimmer, Directional hover, Ripple click, SVG draw, Mesh gradient, Lens blur |
|
||||
|
||||
## 1.7 Bento Paradigm
|
||||
|
||||
- **Palette:** Background `#f9fafb`, cards pure white with `border-slate-200/50`
|
||||
- **Surfaces:** `rounded-[2.5rem]`, diffusion shadow
|
||||
- **Typography:** Geist/Satoshi, `tracking-tight` headers
|
||||
- **Labels:** Outside and below cards
|
||||
- **Animation:** Spring physics (`stiffness: 100, damping: 20`), infinite loops, `React.memo` isolation
|
||||
|
||||
**5-Card Archetypes:**
|
||||
1. Intelligent List — auto-sorting with `layoutId`
|
||||
2. Command Input — typewriter + blinking cursor
|
||||
3. Live Status — breathing indicators
|
||||
4. Wide Data Stream — infinite horizontal carousel
|
||||
5. Contextual UI — staggered highlight + float-in toolbar
|
||||
|
||||
## 1.8 Brand Override
|
||||
|
||||
When brand styling is active:
|
||||
- Dark: `#141413`, Light: `#faf9f5`, Mid: `#b0aea5`, Subtle: `#e8e6dc`
|
||||
- Accents: Orange `#d97757`, Blue `#6a9bcc`, Green `#788c5d`
|
||||
- Fonts: Poppins (headings), Lora (body)
|
||||
|
||||
---
|
||||
|
||||
# 2. Motion Engine
|
||||
|
||||
## 2.1 Tool Selection Matrix
|
||||
|
||||
| Need | Tool |
|
||||
|------|------|
|
||||
| UI enter/exit/layout | **Framer Motion** — `AnimatePresence`, `layoutId`, springs |
|
||||
| Scroll storytelling (pin, scrub) | **GSAP + ScrollTrigger** — frame-accurate control |
|
||||
| Looping icons | **Lottie** — lazy-load (~50KB) |
|
||||
| 3D/WebGL | **Three.js / R3F** — isolated `<Canvas>`, own `"use client"` boundary |
|
||||
| Hover/focus states | **CSS only** — zero JS cost |
|
||||
| Native scroll-driven | **CSS** — `animation-timeline: scroll()` |
|
||||
|
||||
**Conflict Rules [MANDATORY]:**
|
||||
- NEVER mix GSAP + Framer Motion in same component
|
||||
- R3F MUST live in isolated Canvas wrapper
|
||||
- ALWAYS lazy-load Lottie, GSAP, Three.js
|
||||
|
||||
## 2.2 Intensity Scale
|
||||
|
||||
| Level | Techniques |
|
||||
|-------|------------|
|
||||
| 1-2 Subtle | CSS transitions only, 150-300ms |
|
||||
| 3-4 Smooth | CSS keyframes + Framer animate, stagger ≤3 items |
|
||||
| 5-6 Fluid | `whileInView`, magnetic hover, parallax tilt |
|
||||
| 7-8 Cinematic | GSAP ScrollTrigger, pinned sections, horizontal hijack |
|
||||
| 9-10 Immersive | Full scroll sequences, Three.js particles, WebGL shaders |
|
||||
|
||||
## 2.3 Animation Recipes
|
||||
|
||||
See `references/motion-recipes.md` for full code. Summary:
|
||||
|
||||
| Recipe | Tool | Use For |
|
||||
|--------|------|---------|
|
||||
| Scroll Reveal | Framer | Fade+slide on viewport entry |
|
||||
| Stagger Grid | Framer | Sequential list animations |
|
||||
| Pinned Timeline | GSAP | Horizontal scroll with pinning |
|
||||
| Tilt Card | Framer | Mouse-tracking 3D perspective |
|
||||
| Magnetic Button | Framer | Cursor-attracted buttons |
|
||||
| Text Scramble | Vanilla | Matrix-style decode effect |
|
||||
| SVG Path Draw | CSS | Scroll-linked path animation |
|
||||
| Horizontal Scroll | GSAP | Vertical-to-horizontal hijack |
|
||||
| Particle Background | R3F | Decorative WebGL particles |
|
||||
| Layout Morph | Framer | Card-to-modal expansion |
|
||||
|
||||
## 2.4 Performance Rules
|
||||
**GPU-only properties (ONLY animate these):** `transform`, `opacity`, `filter`, `clip-path`
|
||||
|
||||
**NEVER animate:** `width`, `height`, `top`, `left`, `margin`, `padding`, `font-size` — if you need these effects, use `transform: scale()` or `clip-path` instead.
|
||||
|
||||
**Isolation:**
|
||||
- Perpetual animations MUST be in `React.memo` leaf components
|
||||
- `will-change: transform` ONLY during animation
|
||||
- `contain: layout style paint` on heavy containers
|
||||
|
||||
**Mobile:**
|
||||
- ALWAYS respect `prefers-reduced-motion`
|
||||
- ALWAYS disable parallax/3D on `pointer: coarse`
|
||||
- Cap particles: desktop 800, tablet 300, mobile 100
|
||||
- Disable GSAP pin on mobile < 768px
|
||||
|
||||
**Cleanup:** Every `useEffect` with GSAP/observers MUST `return () => ctx.revert()`
|
||||
|
||||
## 2.5 Springs & Easings
|
||||
|
||||
| Feel | Framer Config |
|
||||
|------|---------------|
|
||||
| Snappy | `stiffness: 300, damping: 30` |
|
||||
| Smooth | `stiffness: 150, damping: 20` |
|
||||
| Bouncy | `stiffness: 100, damping: 10` |
|
||||
| Heavy | `stiffness: 60, damping: 20` |
|
||||
|
||||
| CSS Easing | Value |
|
||||
|------------|-------|
|
||||
| Smooth decel | `cubic-bezier(0.16, 1, 0.3, 1)` |
|
||||
| Smooth accel | `cubic-bezier(0.7, 0, 0.84, 0)` |
|
||||
| Elastic | `cubic-bezier(0.34, 1.56, 0.64, 1)` |
|
||||
|
||||
## 2.6 Accessibility
|
||||
- ALWAYS wrap motion in `prefers-reduced-motion` check
|
||||
- NEVER flash content > 3 times/second (seizure risk)
|
||||
- ALWAYS provide visible focus rings (use `outline` not `box-shadow`)
|
||||
- ALWAYS add `aria-live="polite"` for dynamically revealed content
|
||||
- ALWAYS include pause button for auto-playing animations
|
||||
|
||||
## 2.7 Dependencies
|
||||
|
||||
```bash
|
||||
npm install framer-motion # UI (keep at top level)
|
||||
npm install gsap # Scroll (lazy-load)
|
||||
npm install lottie-react # Icons (lazy-load)
|
||||
npm install three @react-three/fiber @react-three/drei # 3D (lazy-load)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
# 3. Asset Generation
|
||||
|
||||
## 3.1 Scripts
|
||||
|
||||
| Type | Script | Pattern |
|
||||
|------|--------|---------|
|
||||
| TTS | `scripts/minimax_tts.py` | Sync |
|
||||
| Music | `scripts/minimax_music.py` | Sync |
|
||||
| Video | `scripts/minimax_video.py` | Async (create → poll → download) |
|
||||
| Image | `scripts/minimax_image.py` | Sync |
|
||||
|
||||
Env: `MINIMAX_API_KEY` (required).
|
||||
|
||||
## 3.2 Workflow
|
||||
1. **Parse:** type, quantity, style, spec, usage
|
||||
2. **Craft prompt:** Be specific (composition, lighting, style). **NEVER** include text in image prompts.
|
||||
3. **Execute:** Show prompt to user, **MUST confirm before generating**, then run script
|
||||
4. **Save:** `<project>/public/assets/{images,videos,audio}/` as `{type}-{descriptor}-{timestamp}.{ext}` — **MUST save locally**
|
||||
5. **Post-process:** Images → WebP, Videos → ffmpeg compress, Audio → normalize
|
||||
6. **Deliver:** File path + code snippet + CSS suggestion
|
||||
|
||||
## 3.3 Preset Shortcuts
|
||||
|
||||
| Shortcut | Spec |
|
||||
|----------|------|
|
||||
| `hero` | 16:9, cinematic, text-safe |
|
||||
| `thumb` | 1:1, centered subject |
|
||||
| `icon` | 1:1, flat, clean background |
|
||||
| `avatar` | 1:1, portrait, circular crop ready |
|
||||
| `banner` | 21:9, OG/social |
|
||||
| `bg-video` | 768P, 6s, `[Static shot]` |
|
||||
| `video-hd` | 1080P, 6s |
|
||||
| `bgm` | 30s, no vocals, loopable |
|
||||
| `tts` | MiniMax HD, MP3 |
|
||||
|
||||
## 3.4 Reference
|
||||
|
||||
- `references/minimax-cli-reference.md` — CLI flags
|
||||
- `references/asset-prompt-guide.md` — Prompt rules
|
||||
- `references/minimax-voice-catalog.md` — Voice IDs
|
||||
- `references/minimax-tts-guide.md` — TTS usage
|
||||
- `references/minimax-music-guide.md` — Music generation (prompts, lyrics, structure tags)
|
||||
- `references/minimax-video-guide.md` — Camera commands
|
||||
- `references/minimax-image-guide.md` — Ratios, batch
|
||||
|
||||
---
|
||||
|
||||
# 4. Copywriting
|
||||
|
||||
## 4.1 Core Job
|
||||
|
||||
1. Grab attention → 2. Create desire → 3. Remove friction → 4. Prompt action
|
||||
|
||||
## 4.2 Frameworks
|
||||
|
||||
**AIDA** (landing pages, emails):
|
||||
```
|
||||
ATTENTION: Bold headline (promise or pain)
|
||||
INTEREST: Elaborate problem ("yes, that's me")
|
||||
DESIRE: Show transformation
|
||||
ACTION: Clear CTA
|
||||
```
|
||||
|
||||
**PAS** (pain-driven products):
|
||||
```
|
||||
PROBLEM: State clearly
|
||||
AGITATE: Make urgent
|
||||
SOLUTION: Your product
|
||||
```
|
||||
|
||||
**FAB** (product differentiation):
|
||||
```
|
||||
FEATURE: What it does
|
||||
ADVANTAGE: Why it matters
|
||||
BENEFIT: What customer gains
|
||||
```
|
||||
|
||||
## 4.3 Headlines
|
||||
|
||||
| Formula | Example |
|
||||
|---------|---------|
|
||||
| Promise | "Double open rates in 30 days" |
|
||||
| Question | "Still wasting 10 hours/week?" |
|
||||
| How-To | "How to automate your pipeline" |
|
||||
| Number | "7 mistakes killing conversions" |
|
||||
| Negative | "Stop losing leads" |
|
||||
| Curiosity | "The one change that tripled bookings" |
|
||||
| Transformation | "From 50 to 500 leads" |
|
||||
|
||||
Be specific. Lead with outcome, not method.
|
||||
|
||||
## 4.4 CTAs
|
||||
|
||||
**Bad:** Submit, Click here, Learn more
|
||||
|
||||
**Good:** "Start my free trial", "Get the template now", "Book my strategy call"
|
||||
|
||||
**Formula:** [Action Verb] + [What They Get] + [Urgency/Ease]
|
||||
|
||||
Place: above fold, after value, multiple on long pages.
|
||||
|
||||
## 4.5 Emotional Triggers
|
||||
|
||||
| Trigger | Example |
|
||||
|---------|---------|
|
||||
| FOMO | "Only 3 spots left" |
|
||||
| Fear of loss | "Every day without this, you're losing $X" |
|
||||
| Status | "Join 10,000+ top agencies" |
|
||||
| Ease | "Set it up once. Forget forever." |
|
||||
| Frustration | "Tired of tools that deliver nothing?" |
|
||||
| Hope | "Yes, you CAN hit $10K MRR" |
|
||||
|
||||
## 4.6 Objection Handling
|
||||
|
||||
| Objection | Response |
|
||||
|-----------|----------|
|
||||
| Too expensive | Show ROI: "Pays for itself in 2 weeks" |
|
||||
| Won't work for me | Social proof from similar customer |
|
||||
| No time | "Setup takes 10 minutes" |
|
||||
| What if it fails | "30-day money-back guarantee" |
|
||||
| Need to think | Urgency/scarcity |
|
||||
|
||||
Place in FAQ, testimonials, near CTA.
|
||||
|
||||
## 4.7 Proof Types
|
||||
|
||||
Testimonials (with name/title), Case studies, Data/metrics, Social proof, Certifications
|
||||
|
||||
---
|
||||
|
||||
# 5. Visual Art
|
||||
|
||||
Philosophy-first workflow. Two output modes.
|
||||
|
||||
## 5.1 Output Modes
|
||||
|
||||
| Mode | Output | When |
|
||||
|------|--------|------|
|
||||
| Static | PDF/PNG | Posters, print, design assets |
|
||||
| Interactive | HTML (p5.js) | Generative art, explorable variations |
|
||||
|
||||
## 5.2 Workflow
|
||||
|
||||
### Step 1: Philosophy Creation
|
||||
Name the movement (1-2 words). Articulate philosophy (4-6 paragraphs) covering:
|
||||
- Static: space, form, color, scale, rhythm, hierarchy
|
||||
- Interactive: computation, emergence, noise, parametric variation
|
||||
|
||||
### Step 2: Conceptual Seed
|
||||
Identify subtle, niche reference — sophisticated, not literal. Jazz musician quoting another song.
|
||||
|
||||
### Step 3: Creation
|
||||
|
||||
**Static Mode:**
|
||||
- Single page, highly visual, design-forward
|
||||
- Repeating patterns, perfect shapes
|
||||
- Sparse typography from `canvas-fonts/`
|
||||
- Nothing overlaps, proper margins
|
||||
- Output: `.pdf` or `.png` + philosophy `.md`
|
||||
|
||||
**Interactive Mode:**
|
||||
1. Read `templates/viewer.html` first
|
||||
2. Keep FIXED sections (header, sidebar, seed controls)
|
||||
3. Replace VARIABLE sections (algorithm, parameters)
|
||||
4. Seeded randomness: `randomSeed(seed); noiseSeed(seed);`
|
||||
5. Output: single self-contained HTML
|
||||
|
||||
### Step 4: Refinement
|
||||
Refine, don't add. Make it crisp. Polish into masterpiece.
|
||||
|
||||
---
|
||||
|
||||
# Quality Gates
|
||||
**Design:**
|
||||
- [ ] Mobile layout collapse (`w-full`, `px-4`) for high-variance designs
|
||||
- [ ] `min-h-[100dvh]` not `h-screen`
|
||||
- [ ] Empty, loading, error states provided
|
||||
- [ ] Cards omitted where spacing suffices
|
||||
|
||||
**Motion:**
|
||||
- [ ] Correct tool per selection matrix
|
||||
- [ ] No GSAP + Framer mixed in same component
|
||||
- [ ] All `useEffect` have cleanup returns
|
||||
- [ ] `prefers-reduced-motion` respected
|
||||
- [ ] Perpetual animations in `React.memo` leaf components
|
||||
- [ ] Only GPU properties animated
|
||||
- [ ] Heavy libraries lazy-loaded
|
||||
|
||||
**General:**
|
||||
- [ ] Dependencies verified in `package.json`
|
||||
- [ ] **No placeholder URLs** — grep the output for `unsplash`, `picsum`, `placeholder`, `placehold`, `via.placeholder`, `lorem.space`, `dummyimage`. If ANY found, STOP and replace with generated assets before delivering.
|
||||
- [ ] **All media assets exist as local files** in the project's assets directory
|
||||
- [ ] Asset prompts confirmed with user before generation
|
||||
|
||||
---
|
||||
|
||||
*React and Next.js are trademarks of Meta Platforms, Inc. and Vercel, Inc., respectively. Vue.js is a trademark of Evan You. Tailwind CSS is a trademark of Tailwind Labs Inc. Svelte and SvelteKit are trademarks of their respective owners. GSAP/GreenSock is a trademark of GreenSock Inc. Three.js, Framer Motion, Lottie, Astro, and all other product names are trademarks of their respective owners.*
|
||||
93
frontend-dev/canvas-fonts/ArsenalSC-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/ArsenalSC-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2012 The Arsenal Project Authors (andrij.design@gmail.com)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/ArsenalSC-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/BigShoulders-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/BigShoulders-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/BigShoulders-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/BigShoulders-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2019 The Big Shoulders Project Authors (https://github.com/xotypeco/big_shoulders)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/BigShoulders-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/BigShoulders-Regular.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Boldonse-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Boldonse-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2024 The Boldonse Project Authors (https://github.com/googlefonts/boldonse)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Boldonse-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Boldonse-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/BricolageGrotesque-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/BricolageGrotesque-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2022 The Bricolage Grotesque Project Authors (https://github.com/ateliertriay/bricolage)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/BricolageGrotesque-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/CrimsonPro-Bold.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/CrimsonPro-Italic.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/CrimsonPro-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/CrimsonPro-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2018 The Crimson Pro Project Authors (https://github.com/Fonthausen/CrimsonPro)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/CrimsonPro-Regular.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/DMMono-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/DMMono-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2020 The DM Mono Project Authors (https://www.github.com/googlefonts/dm-mono)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/DMMono-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/DMMono-Regular.ttf
Normal file
Binary file not shown.
94
frontend-dev/canvas-fonts/EricaOne-OFL.txt
Normal file
94
frontend-dev/canvas-fonts/EricaOne-OFL.txt
Normal file
@@ -0,0 +1,94 @@
|
||||
Copyright (c) 2011 by LatinoType Limitada (luciano@latinotype.com),
|
||||
with Reserved Font Names "Erica One"
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/EricaOne-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/EricaOne-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/GeistMono-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/GeistMono-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/GeistMono-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/GeistMono-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2024 The Geist Project Authors (https://github.com/vercel/geist-font.git)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/GeistMono-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/GeistMono-Regular.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Gloock-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Gloock-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2022 The Gloock Project Authors (https://github.com/duartp/gloock)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Gloock-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Gloock-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/IBMPlexMono-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/IBMPlexMono-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright © 2017 IBM Corp. with Reserved Font Name "Plex"
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/IBMPlexMono-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-Bold.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-Italic.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/IBMPlexSerif-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/InstrumentSans-Bold.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/InstrumentSans-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/InstrumentSans-Italic.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/InstrumentSans-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/InstrumentSans-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2022 The Instrument Sans Project Authors (https://github.com/Instrument/instrument-sans)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/InstrumentSans-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/InstrumentSerif-Italic.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/InstrumentSerif-Regular.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Italiana-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Italiana-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright (c) 2011, Santiago Orozco (hi@typemade.mx), with Reserved Font Name "Italiana".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Italiana-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Italiana-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/JetBrainsMono-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/JetBrainsMono-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2020 The JetBrains Mono Project Authors (https://github.com/JetBrains/JetBrainsMono)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/JetBrainsMono-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/Jura-Light.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Jura-Light.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/Jura-Medium.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Jura-Medium.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Jura-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Jura-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2019 The Jura Project Authors (https://github.com/ossobuffo/jura)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
93
frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/LibreBaskerville-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2012 The Libre Baskerville Project Authors (https://github.com/impallari/Libre-Baskerville) with Reserved Font Name Libre Baskerville.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/LibreBaskerville-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/Lora-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Lora-Bold.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/Lora-BoldItalic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Lora-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/Lora-Italic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Lora-Italic.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Lora-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Lora-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2011 The Lora Project Authors (https://github.com/cyrealtype/Lora-Cyrillic), with Reserved Font Name "Lora".
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Lora-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Lora-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/NationalPark-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/NationalPark-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/NationalPark-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/NationalPark-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2025 The National Park Project Authors (https://github.com/benhoepner/National-Park)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/NationalPark-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/NationalPark-Regular.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/NothingYouCouldDo-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright (c) 2010, Kimberly Geswein (kimberlygeswein.com)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/NothingYouCouldDo-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/Outfit-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Outfit-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Outfit-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Outfit-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2021 The Outfit Project Authors (https://github.com/Outfitio/Outfit-Fonts)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Outfit-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Outfit-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/PixelifySans-Medium.ttf
Normal file
BIN
frontend-dev/canvas-fonts/PixelifySans-Medium.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/PixelifySans-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/PixelifySans-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2021 The Pixelify Sans Project Authors (https://github.com/eifetx/Pixelify-Sans)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
93
frontend-dev/canvas-fonts/PoiretOne-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/PoiretOne-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright (c) 2011, Denis Masharov (denis.masharov@gmail.com)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/PoiretOne-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/PoiretOne-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/RedHatMono-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/RedHatMono-Bold.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/RedHatMono-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/RedHatMono-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2024 The Red Hat Project Authors (https://github.com/RedHatOfficial/RedHatFont)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/RedHatMono-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/RedHatMono-Regular.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Silkscreen-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Silkscreen-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2001 The Silkscreen Project Authors (https://github.com/googlefonts/silkscreen)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Silkscreen-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Silkscreen-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/SmoochSans-Medium.ttf
Normal file
BIN
frontend-dev/canvas-fonts/SmoochSans-Medium.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/SmoochSans-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/SmoochSans-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2016 The Smooch Sans Project Authors (https://github.com/googlefonts/smooch-sans)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Tektur-Medium.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Tektur-Medium.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/Tektur-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/Tektur-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2023 The Tektur Project Authors (https://www.github.com/hyvyys/Tektur)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/Tektur-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/Tektur-Regular.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/WorkSans-Bold.ttf
Normal file
BIN
frontend-dev/canvas-fonts/WorkSans-Bold.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/WorkSans-BoldItalic.ttf
Normal file
Binary file not shown.
BIN
frontend-dev/canvas-fonts/WorkSans-Italic.ttf
Normal file
BIN
frontend-dev/canvas-fonts/WorkSans-Italic.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/WorkSans-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/WorkSans-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2019 The Work Sans Project Authors (https://github.com/weiweihuanghuang/Work-Sans)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/WorkSans-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/WorkSans-Regular.ttf
Normal file
Binary file not shown.
93
frontend-dev/canvas-fonts/YoungSerif-OFL.txt
Normal file
93
frontend-dev/canvas-fonts/YoungSerif-OFL.txt
Normal file
@@ -0,0 +1,93 @@
|
||||
Copyright 2023 The Young Serif Project Authors (https://github.com/noirblancrouge/YoungSerif)
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
This license is copied below, and is also available with a FAQ at:
|
||||
https://openfontlicense.org
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
||||
BIN
frontend-dev/canvas-fonts/YoungSerif-Regular.ttf
Normal file
BIN
frontend-dev/canvas-fonts/YoungSerif-Regular.ttf
Normal file
Binary file not shown.
43
frontend-dev/references/asset-prompt-guide.md
Normal file
43
frontend-dev/references/asset-prompt-guide.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# Prompt Engineering Guide
|
||||
|
||||
## Image Prompts
|
||||
|
||||
- Be specific about composition: "left-aligned subject with negative space on the right for text overlay"
|
||||
- Specify lighting: "soft studio lighting", "golden hour backlight", "flat diffused light"
|
||||
- Include style modifiers: "editorial photography", "3D render", "flat vector illustration"
|
||||
- Add technical specs: "4K resolution, sharp focus, shallow depth of field"
|
||||
- For web assets: always mention "clean background", "web-optimized", "high contrast for readability"
|
||||
- **NEVER** include text in image prompts unless explicitly requested — AI text rendering is unreliable
|
||||
|
||||
## Video Prompts
|
||||
|
||||
- Use MiniMax camera commands in brackets: `[Push in]`, `[Truck left]`, `[Tracking shot]`, etc.
|
||||
- Describe scene, subject, lighting, and mood — the API auto-optimizes prompts by default
|
||||
- For web backgrounds: keep 6s duration, add `[Static shot]` for stability
|
||||
- Max 2,000 characters
|
||||
|
||||
## Audio / TTS
|
||||
|
||||
- Specify genre, tempo (BPM), mood, and instruments
|
||||
- For background music: "no vocals, suitable for background, not distracting"
|
||||
- For sound effects: be extremely specific about the sound event
|
||||
- For TTS: choose voice matching content language and speaker gender
|
||||
|
||||
## Preset Shortcuts
|
||||
|
||||
| Shortcut | Spec |
|
||||
|----------|------|
|
||||
| `hero` | 16:9 (1280x720) image, cinematic, text-safe space |
|
||||
| `thumb` | 1:1 (1024x1024) image, centered subject |
|
||||
| `icon` | 1:1 (1024x1024), flat style, clean background |
|
||||
| `avatar` | 1:1 (1024x1024), portrait, circular crop ready |
|
||||
| `banner` | 21:9 (1344x576), OG/social banner |
|
||||
| `portrait` | 2:3 (832x1248), vertical portrait |
|
||||
| `mobile` | 9:16 (720x1280), mobile fullscreen |
|
||||
| `bg-video` | 768P, 6s, `[Static shot]`, MiniMax Hailuo-2.3 |
|
||||
| `video` | 768P, 6s, MiniMax Hailuo-2.3, prompt auto-optimized |
|
||||
| `video-hd` | 1080P, 6s, MiniMax Hailuo-2.3 |
|
||||
| `bgm` | 30s background music, no vocals, loopable |
|
||||
| `sfx` | Short sound effect, < 3s |
|
||||
| `tts` | Text-to-speech, MiniMax HD, MP3 |
|
||||
| `narration` | Expressive narration voice, MiniMax |
|
||||
33
frontend-dev/references/env-setup.md
Normal file
33
frontend-dev/references/env-setup.md
Normal file
@@ -0,0 +1,33 @@
|
||||
# Getting Started
|
||||
|
||||
## 1. Set API key
|
||||
|
||||
```bash
|
||||
export MINIMAX_API_KEY="<paste-your-key-here>"
|
||||
```
|
||||
|
||||
## 2. Install dependencies
|
||||
|
||||
```bash
|
||||
pip install requests
|
||||
|
||||
# FFmpeg (optional, for audio post-processing)
|
||||
# macOS:
|
||||
brew install ffmpeg
|
||||
# Ubuntu:
|
||||
sudo apt install ffmpeg
|
||||
```
|
||||
|
||||
## 3. Quick test
|
||||
|
||||
```bash
|
||||
python scripts/minimax_tts.py "Hello world" -o test.mp3
|
||||
```
|
||||
|
||||
If successful, you'll see `OK: xxxxx bytes -> test.mp3`.
|
||||
|
||||
## Next steps
|
||||
|
||||
- **Voice selection**: See [minimax-voice-catalog.md](minimax-voice-catalog.md)
|
||||
- **TTS workflows**: See [minimax-tts-guide.md](minimax-tts-guide.md)
|
||||
- **Troubleshooting**: See [troubleshooting.md](troubleshooting.md)
|
||||
133
frontend-dev/references/minimax-cli-reference.md
Normal file
133
frontend-dev/references/minimax-cli-reference.md
Normal file
@@ -0,0 +1,133 @@
|
||||
# Provider Reference — MiniMax
|
||||
|
||||
All asset generation uses MiniMax API. Env: `MINIMAX_API_KEY` (required).
|
||||
|
||||
## Audio (Sync TTS)
|
||||
|
||||
**Script:** `scripts/minimax_tts.py`
|
||||
|
||||
```bash
|
||||
python scripts/minimax_tts.py "Hello world" -o output.mp3
|
||||
python scripts/minimax_tts.py "你好" -o hi.mp3 -v female-shaonv
|
||||
python scripts/minimax_tts.py "Welcome" -o out.wav -v male-qn-jingying --speed 0.8 --format wav
|
||||
```
|
||||
|
||||
**Model:** `speech-2.8-hd` (default).
|
||||
|
||||
| Flag | Default | Range / Options |
|
||||
|------|---------|-----------------|
|
||||
| `-o` | (required) | Output file path |
|
||||
| `-v` | `male-qn-qingse` | Voice ID |
|
||||
| `--model` | `speech-2.8-hd` | speech-2.8-hd / speech-2.8-turbo / speech-2.6-hd / speech-2.6-turbo |
|
||||
| `--speed` | 1.0 | 0.5–2.0 |
|
||||
| `--volume` | 1.0 | 0.1–10 |
|
||||
| `--pitch` | 0 | -12 to 12 |
|
||||
| `--emotion` | (auto) | happy / sad / angry / fearful / disgusted / surprised / calm / fluent / whisper |
|
||||
| `--format` | mp3 | mp3 / wav / flac |
|
||||
| `--lang` | auto | Language boost |
|
||||
|
||||
**Programmatic:**
|
||||
```python
|
||||
from minimax_tts import tts
|
||||
audio_bytes = tts("Hello", voice_id="female-shaonv")
|
||||
```
|
||||
|
||||
|
||||
## Video (Text-to-Video)
|
||||
|
||||
**Script:** `scripts/minimax_video.py`
|
||||
|
||||
```bash
|
||||
python scripts/minimax_video.py "A cat playing piano" -o cat.mp4
|
||||
python scripts/minimax_video.py "Ocean waves [Truck left]" -o waves.mp4 --duration 10
|
||||
python scripts/minimax_video.py "City skyline [Push in]" -o city.mp4 --resolution 1080P
|
||||
```
|
||||
|
||||
**Model:** `MiniMax-Hailuo-2.3` (default). Async: script handles create → poll → download automatically.
|
||||
|
||||
| Flag | Default | Options |
|
||||
|------|---------|---------|
|
||||
| `-o` | (required) | Output file path (.mp4) |
|
||||
| `--model` | `MiniMax-Hailuo-2.3` | MiniMax-Hailuo-2.3 / MiniMax-Hailuo-02 / T2V-01-Director / T2V-01 |
|
||||
| `--duration` | 6 | 6 / 10 (10s only at 768P with Hailuo models) |
|
||||
| `--resolution` | 768P | 720P / 768P / 1080P (1080P only 6s) |
|
||||
| `--no-optimize` | false | Disable prompt auto-optimization |
|
||||
| `--poll-interval` | 10 | Seconds between status checks |
|
||||
| `--max-wait` | 600 | Max wait time in seconds |
|
||||
|
||||
**Camera commands** — insert `[Command]` in prompt: `[Push in]`, `[Truck left]`, `[Pan right]`, `[Zoom out]`, `[Static shot]`, `[Tracking shot]`, etc.
|
||||
|
||||
**Programmatic:**
|
||||
```python
|
||||
from minimax_video import generate
|
||||
generate("A cat playing piano", "cat.mp4", model="MiniMax-Hailuo-2.3", duration=6)
|
||||
```
|
||||
|
||||
See [minimax-video-guide.md](minimax-video-guide.md) for full camera command list and model compatibility.
|
||||
|
||||
## Image (Text-to-Image)
|
||||
|
||||
**Script:** `scripts/minimax_image.py`
|
||||
|
||||
```bash
|
||||
python scripts/minimax_image.py "A cat astronaut in space" -o cat.png
|
||||
python scripts/minimax_image.py "Mountain landscape" -o hero.png --ratio 16:9
|
||||
python scripts/minimax_image.py "Product icons, flat style" -o icons.png -n 4 --seed 42
|
||||
```
|
||||
|
||||
**Model:** `image-01`. Sync: returns image URL (or base64) immediately.
|
||||
|
||||
| Flag | Default | Options |
|
||||
|------|---------|---------|
|
||||
| `-o` | (required) | Output file path (.png/.jpg) |
|
||||
| `--ratio` | 1:1 | 1:1 / 16:9 / 4:3 / 3:2 / 2:3 / 3:4 / 9:16 / 21:9 |
|
||||
| `-n` | 1 | Number of images (1–9) |
|
||||
| `--seed` | (random) | Seed for reproducibility |
|
||||
| `--optimize` | false | Enable prompt auto-optimization |
|
||||
| `--base64` | false | Return base64 instead of URL |
|
||||
|
||||
**Batch output:** with `-n > 1`, files are named `out-0.png`, `out-1.png`, etc.
|
||||
|
||||
**Programmatic:**
|
||||
```python
|
||||
from minimax_image import generate_image, download_and_save
|
||||
result = generate_image("A cat in space", aspect_ratio="16:9")
|
||||
download_and_save(result["data"]["image_urls"][0], "cat.png")
|
||||
```
|
||||
|
||||
See [minimax-image-guide.md](minimax-image-guide.md) for ratio dimensions and details.
|
||||
|
||||
## Music (Text-to-Music)
|
||||
|
||||
**Script:** `scripts/minimax_music.py`
|
||||
|
||||
```bash
|
||||
python scripts/minimax_music.py --prompt "Indie folk, melancholic" --lyrics "[verse]\nStreetlights flicker" -o song.mp3
|
||||
python scripts/minimax_music.py --prompt "Upbeat pop, energetic" --auto-lyrics -o pop.mp3
|
||||
python scripts/minimax_music.py --prompt "Jazz piano, smooth, relaxing" --instrumental -o jazz.mp3
|
||||
```
|
||||
|
||||
**Model:** `music-2.5+` (default). Sync: returns audio hex or URL.
|
||||
|
||||
| Flag | Default | Options |
|
||||
|------|---------|---------|
|
||||
| `-o` | (required) | Output file path (.mp3/.wav) |
|
||||
| `--prompt` | (empty) | Music description: style, mood, scenario (max 2000 chars) |
|
||||
| `--lyrics` | (empty) | Song lyrics with structure tags (max 3500 chars) |
|
||||
| `--lyrics-file` | (empty) | Read lyrics from file |
|
||||
| `--model` | `music-2.5+` | music-2.5+ / music-2.5 |
|
||||
| `--instrumental` | false | Generate instrumental only (no vocals, music-2.5+ only) |
|
||||
| `--auto-lyrics` | false | Auto-generate lyrics from prompt |
|
||||
| `--format` | mp3 | mp3 / wav / pcm |
|
||||
| `--sample-rate` | 44100 | 16000 / 24000 / 32000 / 44100 |
|
||||
| `--bitrate` | 256000 | 32000 / 64000 / 128000 / 256000 |
|
||||
|
||||
**Lyrics structure tags:** `[Intro]`, `[Verse]`, `[Pre Chorus]`, `[Chorus]`, `[Interlude]`, `[Bridge]`, `[Outro]`, `[Post Chorus]`, `[Transition]`, `[Break]`, `[Hook]`, `[Build Up]`, `[Inst]`, `[Solo]`
|
||||
|
||||
**Programmatic:**
|
||||
```python
|
||||
from minimax_music import generate_music
|
||||
result = generate_music(prompt="Jazz piano", is_instrumental=True)
|
||||
with open("jazz.mp3", "wb") as f:
|
||||
f.write(result["audio_bytes"])
|
||||
```
|
||||
65
frontend-dev/references/minimax-image-guide.md
Normal file
65
frontend-dev/references/minimax-image-guide.md
Normal file
@@ -0,0 +1,65 @@
|
||||
# Image Generation Guide
|
||||
|
||||
## CLI usage
|
||||
|
||||
```bash
|
||||
# Basic (1:1, 1024x1024)
|
||||
python scripts/minimax_image.py "A cat astronaut floating in space" -o cat.png
|
||||
|
||||
# 16:9 for hero banner
|
||||
python scripts/minimax_image.py "Mountain landscape at golden hour" -o hero.png --ratio 16:9
|
||||
|
||||
# Batch: 4 images at once
|
||||
python scripts/minimax_image.py "Minimalist product icon" -o icons.png -n 4
|
||||
|
||||
# With seed for reproducibility
|
||||
python scripts/minimax_image.py "Abstract gradient background" -o bg.png --seed 42
|
||||
|
||||
# Enable prompt optimization
|
||||
python scripts/minimax_image.py "a dog" -o dog.png --optimize
|
||||
|
||||
# Base64 mode (no URL download, save directly)
|
||||
python scripts/minimax_image.py "Logo concept" -o logo.png --base64
|
||||
```
|
||||
|
||||
## Programmatic usage
|
||||
|
||||
```python
|
||||
from minimax_image import generate_image, download_and_save
|
||||
|
||||
# Generate and get URL
|
||||
result = generate_image("A cat in space", aspect_ratio="16:9")
|
||||
url = result["data"]["image_urls"][0]
|
||||
download_and_save(url, "cat.png")
|
||||
|
||||
# Generate multiple
|
||||
result = generate_image("Icon design", n=4, aspect_ratio="1:1")
|
||||
for i, url in enumerate(result["data"]["image_urls"]):
|
||||
download_and_save(url, f"icon-{i}.png")
|
||||
```
|
||||
|
||||
## Model
|
||||
|
||||
Currently only `image-01`.
|
||||
|
||||
## Aspect ratios & dimensions
|
||||
|
||||
| Ratio | Pixels | Use case |
|
||||
|-------|--------|----------|
|
||||
| `1:1` | 1024x1024 | Avatar, icon, square thumbnail |
|
||||
| `16:9` | 1280x720 | Hero banner, video thumbnail |
|
||||
| `4:3` | 1152x864 | Standard landscape |
|
||||
| `3:2` | 1248x832 | Photo-style |
|
||||
| `2:3` | 832x1248 | Portrait, mobile |
|
||||
| `3:4` | 864x1152 | Portrait card |
|
||||
| `9:16` | 720x1280 | Mobile fullscreen, story |
|
||||
| `21:9` | 1344x576 | Ultra-wide banner |
|
||||
|
||||
Custom dimensions also supported: width/height in [512, 2048], must be divisible by 8.
|
||||
|
||||
## Limits
|
||||
|
||||
- Prompt: max 1,500 characters
|
||||
- Batch: 1–9 images per request
|
||||
- URL expires after 24 hours (use `--base64` to avoid expiry)
|
||||
- Seed: set for reproducible results across identical prompts
|
||||
216
frontend-dev/references/minimax-music-guide.md
Normal file
216
frontend-dev/references/minimax-music-guide.md
Normal file
@@ -0,0 +1,216 @@
|
||||
# Music Generation Guide
|
||||
|
||||
## CLI Usage
|
||||
|
||||
```bash
|
||||
# Instrumental (no vocals)
|
||||
python scripts/minimax_music.py --prompt "Jazz piano, smooth, relaxing" --instrumental -o jazz.mp3
|
||||
|
||||
# With custom lyrics
|
||||
python scripts/minimax_music.py --prompt "Indie folk, melancholic" --lyrics "[verse]\nStreetlights flicker\nOn empty roads" -o song.mp3
|
||||
|
||||
# Auto-generate lyrics from prompt
|
||||
python scripts/minimax_music.py --prompt "Upbeat pop, energetic, summer vibes" --auto-lyrics -o pop.mp3
|
||||
|
||||
# From lyrics file
|
||||
python scripts/minimax_music.py --prompt "Soulful blues, rainy night" --lyrics-file lyrics.txt -o blues.mp3
|
||||
|
||||
# Custom audio settings
|
||||
python scripts/minimax_music.py --prompt "Lo-fi beats" --instrumental -o lofi.wav --format wav --sample-rate 44100 --bitrate 256000
|
||||
```
|
||||
|
||||
## Programmatic Usage
|
||||
|
||||
```python
|
||||
from minimax_music import generate_music
|
||||
|
||||
# Instrumental
|
||||
result = generate_music(prompt="Jazz piano, smooth", is_instrumental=True)
|
||||
with open("jazz.mp3", "wb") as f:
|
||||
f.write(result["audio_bytes"])
|
||||
|
||||
# With lyrics
|
||||
result = generate_music(
|
||||
prompt="Indie folk, acoustic guitar",
|
||||
lyrics="[verse]\nWalking through the rain\n[chorus]\nI'll find my way home",
|
||||
)
|
||||
|
||||
# Auto-generate lyrics
|
||||
result = generate_music(
|
||||
prompt="Upbeat pop, summer anthem",
|
||||
lyrics_optimizer=True,
|
||||
)
|
||||
|
||||
# Access metadata
|
||||
print(f"Duration: {result['duration']}ms")
|
||||
print(f"Sample rate: {result['sample_rate']}")
|
||||
print(f"Size: {result['size']} bytes")
|
||||
```
|
||||
|
||||
## Models
|
||||
|
||||
| Model | Features |
|
||||
|-------|----------|
|
||||
| `music-2.5+` | Recommended. Supports instrumental mode, complete song structures, hi-fi audio |
|
||||
| `music-2.5` | Standard model. No instrumental mode |
|
||||
|
||||
## Prompt Writing
|
||||
|
||||
The `prompt` parameter describes music style using comma-separated descriptors:
|
||||
|
||||
| Category | Examples |
|
||||
|----------|----------|
|
||||
| Genre | Blues, Pop, Rock, Jazz, Electronic, Hip-hop, Folk, Classical |
|
||||
| Mood | Soulful, Melancholy, Upbeat, Energetic, Peaceful, Dark, Nostalgic |
|
||||
| Scenario | Rainy night, Summer day, Road trip, Late night, Sunrise |
|
||||
| Instrumentation | Electric guitar, Piano, Acoustic, Synthesizer, Strings |
|
||||
| Vocal type | Male vocals, Female vocals, Soft vocals, Powerful vocals |
|
||||
| Tempo | Slow tempo, Fast tempo, Mid-tempo, Relaxed |
|
||||
|
||||
**Example prompts:**
|
||||
```
|
||||
"Soulful Blues, Rainy Night, Melancholy, Male Vocals, Slow Tempo"
|
||||
"Upbeat Pop, Summer Vibes, Female Vocals, Energetic, Synth-heavy"
|
||||
"Lo-fi Hip-hop, Chill, Relaxed, Instrumental, Piano samples"
|
||||
"Cinematic Orchestral, Epic, Building tension, Strings and Brass"
|
||||
```
|
||||
|
||||
## Lyrics Format
|
||||
|
||||
Use structure tags in brackets to organize song sections:
|
||||
|
||||
### Structure Tags
|
||||
|
||||
| Tag | Purpose |
|
||||
|-----|---------|
|
||||
| `[Intro]` | Opening section (can be instrumental) |
|
||||
| `[Verse]` / `[Verse 1]` | Story/narrative sections |
|
||||
| `[Pre-Chorus]` | Build-up before chorus |
|
||||
| `[Chorus]` | Main hook, typically repeated |
|
||||
| `[Post Chorus]` | Extension after chorus |
|
||||
| `[Bridge]` | Contrasting section near end |
|
||||
| `[Interlude]` | Instrumental break |
|
||||
| `[Solo]` | Instrumental solo (add direction: "slow, bluesy") |
|
||||
| `[Outro]` | Closing section |
|
||||
| `[Break]` | Short pause or transition |
|
||||
| `[Hook]` | Catchy repeated phrase |
|
||||
| `[Build Up]` | Tension building section |
|
||||
| `[Inst]` | Instrumental section |
|
||||
| `[Transition]` | Section change |
|
||||
|
||||
### Backing Vocals & Directions
|
||||
|
||||
Use parentheses for backing vocals or performance notes:
|
||||
```
|
||||
(Ooh, yeah)
|
||||
(Harmonize)
|
||||
(Whispered)
|
||||
(Fade out...)
|
||||
```
|
||||
|
||||
### Example Lyrics
|
||||
|
||||
```
|
||||
[Intro]
|
||||
(Soft piano)
|
||||
|
||||
[Verse 1]
|
||||
Streetlights flicker on empty roads
|
||||
The rain keeps falling, the wind still blows
|
||||
I'm walking home with nowhere to go
|
||||
Just memories of what I used to know
|
||||
|
||||
[Pre-Chorus]
|
||||
And I can feel it coming back to me
|
||||
(Coming back to me)
|
||||
|
||||
[Chorus]
|
||||
Under the neon lights tonight
|
||||
I'm searching for what feels right
|
||||
(Oh, feels right)
|
||||
These city streets will guide me home
|
||||
I'm tired of feeling so alone
|
||||
|
||||
[Verse 2]
|
||||
Coffee shops and midnight trains
|
||||
The faces change but the feeling remains
|
||||
...
|
||||
|
||||
[Bridge]
|
||||
Maybe tomorrow will be different
|
||||
Maybe I'll finally understand
|
||||
(Understand...)
|
||||
|
||||
[Solo]
|
||||
(Slow, mournful, bluesy guitar)
|
||||
|
||||
[Outro]
|
||||
(Fade out...)
|
||||
Under the neon lights...
|
||||
```
|
||||
|
||||
## Audio Settings
|
||||
|
||||
| Parameter | Options | Default | Notes |
|
||||
|-----------|---------|---------|-------|
|
||||
| `format` | mp3, wav, pcm | mp3 | WAV for highest quality |
|
||||
| `sample_rate` | 16000, 24000, 32000, 44100 | 44100 | 44100 recommended |
|
||||
| `bitrate` | 32000, 64000, 128000, 256000 | 256000 | Higher = better quality |
|
||||
|
||||
## Generation Modes
|
||||
|
||||
### 1. Instrumental Only
|
||||
```bash
|
||||
python scripts/minimax_music.py --prompt "Ambient electronic, space theme" --instrumental -o ambient.mp3
|
||||
```
|
||||
- Requires `music-2.5+` model
|
||||
- Only `prompt` needed, no lyrics
|
||||
|
||||
### 2. With Custom Lyrics
|
||||
```bash
|
||||
python scripts/minimax_music.py --prompt "Pop ballad, emotional" --lyrics "[verse]\nYour lyrics here" -o ballad.mp3
|
||||
```
|
||||
- Provide both `prompt` (style) and `lyrics` (words + structure)
|
||||
|
||||
### 3. Auto-Generated Lyrics
|
||||
```bash
|
||||
python scripts/minimax_music.py --prompt "Rock anthem about freedom" --auto-lyrics -o rock.mp3
|
||||
```
|
||||
- System generates lyrics from prompt
|
||||
- Good for quick generation when lyrics aren't critical
|
||||
|
||||
## Limits
|
||||
|
||||
- **Prompt:** max 2,000 characters
|
||||
- **Lyrics:** 1–3,500 characters
|
||||
- **Duration:** ~25-30 seconds per generation (varies)
|
||||
- **URL expiration:** 24 hours (when using URL output mode)
|
||||
|
||||
## Best Practices
|
||||
|
||||
1. **Layer style descriptors** — Combine genre + mood + instrumentation for precise results
|
||||
2. **Use structure tags** — Even simple `[verse]` `[chorus]` improves arrangement
|
||||
3. **Include backing vocal cues** — `(Ooh)`, `(Yeah)` add production polish
|
||||
4. **Match prompt to lyrics mood** — Conflicting prompt/lyrics produce inconsistent results
|
||||
5. **Instrumental for backgrounds** — Use `--instrumental` for BGM, avoiding vocal distractions
|
||||
6. **High bitrate for production** — Use 256000 for final assets, lower for drafts
|
||||
|
||||
## Common Use Cases
|
||||
|
||||
| Use Case | Command |
|
||||
|----------|---------|
|
||||
| Background music | `--prompt "Lo-fi, calm, ambient" --instrumental` |
|
||||
| Landing page hero | `--prompt "Cinematic, inspiring, building" --instrumental` |
|
||||
| Podcast intro | `--prompt "Upbeat, energetic, short" --instrumental` |
|
||||
| Demo song | `--prompt "Pop, catchy" --auto-lyrics` |
|
||||
| Custom jingle | `--prompt "Happy, bright, corporate" --lyrics "[hook]\nYour brand name"` |
|
||||
|
||||
## Error Handling
|
||||
|
||||
| Error Code | Meaning | Solution |
|
||||
|------------|---------|----------|
|
||||
| 1002 | Rate limit | Wait and retry |
|
||||
| 1004 | Auth failed | Check API key |
|
||||
| 1008 | Insufficient balance | Top up account |
|
||||
| 1026 | Content flagged | Rephrase prompt/lyrics |
|
||||
| 2013 | Invalid parameters | Check prompt/lyrics length |
|
||||
78
frontend-dev/references/minimax-tts-guide.md
Normal file
78
frontend-dev/references/minimax-tts-guide.md
Normal file
@@ -0,0 +1,78 @@
|
||||
# TTS Guide
|
||||
|
||||
## CLI usage (recommended)
|
||||
|
||||
```bash
|
||||
# Basic
|
||||
python scripts/minimax_tts.py "Hello world" -o output.mp3
|
||||
|
||||
# Custom voice and speed
|
||||
python scripts/minimax_tts.py "你好世界" -o hi.mp3 -v female-shaonv --speed 0.9
|
||||
|
||||
# WAV format, high quality
|
||||
python scripts/minimax_tts.py "Welcome" -o out.wav -v male-qn-jingying --format wav --sample-rate 32000
|
||||
|
||||
# With emotion (for speech-2.6 models)
|
||||
python scripts/minimax_tts.py "Great news!" -o happy.mp3 -v female-shaonv --emotion happy --model speech-2.6-hd
|
||||
```
|
||||
|
||||
## Programmatic usage
|
||||
|
||||
```python
|
||||
from minimax_tts import tts
|
||||
|
||||
# Basic
|
||||
audio_bytes = tts("Hello world")
|
||||
|
||||
# With options
|
||||
audio_bytes = tts(
|
||||
text="Welcome to our product.",
|
||||
voice_id="female-shaonv",
|
||||
model="speech-2.8-hd",
|
||||
speed=0.9,
|
||||
fmt="mp3",
|
||||
)
|
||||
|
||||
# Save to file
|
||||
with open("output.mp3", "wb") as f:
|
||||
f.write(audio_bytes)
|
||||
```
|
||||
|
||||
## Limits
|
||||
|
||||
- **Sync TTS:** max 10,000 characters per request
|
||||
- **Pause markers:** insert `<#1.5#>` for a 1.5s pause (range: 0.01–99.99s)
|
||||
|
||||
## Model selection
|
||||
|
||||
| Model | Best for |
|
||||
|-------|----------|
|
||||
| `speech-2.8-hd` | Highest quality, auto emotion (recommended) |
|
||||
| `speech-2.8-turbo` | Fast, good quality |
|
||||
| `speech-2.6-hd` | Manual emotion control needed |
|
||||
| `speech-2.6-turbo` | Fast + manual emotion |
|
||||
|
||||
## Voice selection
|
||||
|
||||
See [minimax-voice-catalog.md](minimax-voice-catalog.md) for the full list.
|
||||
|
||||
Common voices:
|
||||
|
||||
| Voice ID | Gender | Style |
|
||||
|----------|--------|-------|
|
||||
| `male-qn-qingse` | Male | Young, gentle |
|
||||
| `male-qn-jingying` | Male | Elite, authoritative |
|
||||
| `male-qn-badao` | Male | Dominant, powerful |
|
||||
| `female-shaonv` | Female | Young, bright |
|
||||
| `female-yujie` | Female | Mature, elegant |
|
||||
| `female-chengshu` | Female | Sophisticated |
|
||||
| `presenter_male` | Male | News presenter |
|
||||
| `presenter_female` | Female | News presenter |
|
||||
| `audiobook_male_1` | Male | Audiobook narrator |
|
||||
| `audiobook_female_1` | Female | Audiobook narrator |
|
||||
|
||||
## Best practices
|
||||
|
||||
- Use `speech-2.8-hd` and let emotion auto-match — don't manually set emotion unless needed
|
||||
- Use 32000 sample rate for web audio (good balance of quality and file size)
|
||||
- For long text (>10,000 chars), split into chunks and merge with FFmpeg
|
||||
82
frontend-dev/references/minimax-video-guide.md
Normal file
82
frontend-dev/references/minimax-video-guide.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Video Generation Guide
|
||||
|
||||
## CLI usage
|
||||
|
||||
```bash
|
||||
# Basic
|
||||
python scripts/minimax_video.py "A cat playing piano in a cozy room" -o cat.mp4
|
||||
|
||||
# With camera control
|
||||
python scripts/minimax_video.py "Ocean waves crashing on rocks [Truck left]" -o waves.mp4
|
||||
|
||||
# 10 seconds, 1080P
|
||||
python scripts/minimax_video.py "City skyline at sunset [Push in]" -o city.mp4 --duration 10 --resolution 1080P
|
||||
|
||||
# Disable prompt auto-optimization
|
||||
python scripts/minimax_video.py "Exact prompt I want used" -o out.mp4 --no-optimize
|
||||
```
|
||||
|
||||
## Programmatic usage
|
||||
|
||||
```python
|
||||
from minimax_video import generate, create_task, poll_task, download_video
|
||||
|
||||
# Full pipeline (blocking)
|
||||
generate("A cat playing piano", "cat.mp4", model="MiniMax-Hailuo-2.3", duration=6)
|
||||
|
||||
# Step by step
|
||||
task_id = create_task("A cat playing piano")
|
||||
file_id = poll_task(task_id, interval=10, max_wait=600)
|
||||
download_video(file_id, "cat.mp4")
|
||||
```
|
||||
|
||||
## Models
|
||||
|
||||
| Model | Resolution | Duration | Notes |
|
||||
|-------|-----------|----------|-------|
|
||||
| `MiniMax-Hailuo-2.3` | 768P, 1080P | 6s, 10s (768P only) | Latest, recommended |
|
||||
| `MiniMax-Hailuo-02` | 768P, 1080P | 6s, 10s (768P only) | Previous gen |
|
||||
| `T2V-01-Director` | 720P | 6s | Camera control optimized |
|
||||
| `T2V-01` | 720P | 6s | Base model |
|
||||
|
||||
## Camera commands
|
||||
|
||||
Insert `[Command]` in prompt text to control camera movement:
|
||||
|
||||
| Command | Effect |
|
||||
|---------|--------|
|
||||
| `[Truck left]` | Camera moves left |
|
||||
| `[Truck right]` | Camera moves right |
|
||||
| `[Push in]` | Camera moves toward subject |
|
||||
| `[Pull out]` | Camera moves away from subject |
|
||||
| `[Pan left]` | Camera rotates left (fixed position) |
|
||||
| `[Pan right]` | Camera rotates right (fixed position) |
|
||||
| `[Tilt up]` | Camera tilts upward |
|
||||
| `[Tilt down]` | Camera tilts downward |
|
||||
| `[Pedestal up]` | Camera rises vertically |
|
||||
| `[Pedestal down]` | Camera lowers vertically |
|
||||
| `[Zoom in]` | Lens zooms in |
|
||||
| `[Zoom out]` | Lens zooms out |
|
||||
| `[Static shot]` | No camera movement |
|
||||
| `[Tracking shot]` | Camera follows subject |
|
||||
| `[Shake]` | Handheld shake effect |
|
||||
|
||||
Example: `"A runner sprints through a forest trail [Tracking shot]"`
|
||||
|
||||
## Pipeline
|
||||
|
||||
The script handles the full async flow:
|
||||
|
||||
1. **Create task** — `POST /v1/video_generation` → returns `task_id`
|
||||
2. **Poll status** — `GET /v1/query/video_generation?task_id=xxx` → poll until `Success`
|
||||
- Status values: `Preparing` → `Queueing` → `Processing` → `Success` / `Fail`
|
||||
3. **Download** — `GET /v1/files/retrieve?file_id=xxx` → get `download_url` (valid 1 hour) → save file
|
||||
|
||||
Typical generation time: 1–5 minutes depending on duration and resolution.
|
||||
|
||||
## Limits
|
||||
|
||||
- Prompt: max 2,000 characters
|
||||
- 1080P: only supports 6s duration
|
||||
- 10s duration: only available at 768P with Hailuo-2.3/02
|
||||
- Download URL expires after 1 hour
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user