DMF LOGO SDK (Flutter)
Official Digital Media Factory (DMF) animated splash screen and brand mark SDK for Flutter featuring physics-based kinetic transitions, multi-style brand marks, and luxury dual-theme palettes.
📦 Official pub.dev Package: https://pub.dev/packages/dmf_logo_sdk
✨ Features
- 🚀 Kinetic Physics Engine:
- Custom
BallLaunchCurvewith elastic launch propulsion and $+12%$ overshoot settle. - Custom
TextOvershootCurvewith $+55%$ title and $+45%$ subtitle physical rebound trajectory.
- Custom
- 💎 Two Brand Mark Styles:
LogoStyle.dmfOneLine: Authentic horizontal D-M-F emblem with staggered kinetic text (p o w e r e d,DIGITAL,MEDIA FACTORY).LogoStyle.dmfFullLogo: Full official lockup logo ([ DMF ] DIGITAL MEDIA FACTORY).
- 🎨 Curated Luxury Palettes:
- Warm Cream Light (
isDark: false): Signature luminous studio center (#FFFDF8) radiating into warm cream (#FAF4E6). - Deep Obsidian Dark (
isDark: true): Luminous deep navy center (#1E293B) into rich obsidian (#131B2E) and edge vignette (#090E17).
- Warm Cream Light (
- 🔤 Embedded Variable Typography: Bundled with official
OutfitandPlus Jakarta Sansvariable fonts. - âš¡ Seamless Navigation: Supports
onAnimationCompletecallbacks with context or parameterless handlers for easyNavigator.pushReplacement.
📦 Installation
1. From pub.dev (Recommended)
Add the package to your pubspec.yaml:
dependencies:
dmf_logo_sdk: ^0.0.2
Or run:
flutter pub add dmf_logo_sdk
2. From Git Repository
dependencies:
dmf_logo_sdk:
git:
url: https://github.com/DigitalMediaFactory/dmf-logo-sdk.git
path: mobile
🚀 Quick Start
1. Splash Screen with Page Navigation
import 'package:flutter/material.dart';
import 'package:dmf_logo_sdk/mobile.dart';
import 'home_page.dart';
class SplashPage extends StatelessWidget {
const SplashPage({super.key});
@override
Widget build(BuildContext context) {
return SplashScreen(
initialLogoStyle: LogoStyle.dmfOneLine, // or LogoStyle.dmfFullLogo
isDark: true, // true = Deep Obsidian, false = Warm Cream
onAnimationComplete: (context) {
Navigator.of(context).pushReplacement(
MaterialPageRoute(builder: (_) => const HomePage()),
);
},
);
}
}
2. Style 2: Full Official Logo
import 'package:flutter/material.dart';
import 'package:dmf_logo_sdk/mobile.dart';
class FullLogoSplash extends StatelessWidget {
const FullLogoSplash({super.key});
@override
Widget build(BuildContext context) {
return SplashScreen(
initialLogoStyle: LogoStyle.dmfFullLogo,
isDark: false, // Warm cream light mode
onAnimationComplete: () {
debugPrint('Animation complete!');
},
);
}
}
3. Standalone Horizontal Emblem Widget
Use DmfOneLineMark anywhere in your app (app bars, profile headers, about screens):
import 'package:flutter/material.dart';
import 'package:dmf_logo_sdk/mobile.dart';
class BrandHeader extends StatelessWidget {
const BrandHeader({super.key});
@override
Widget build(BuildContext context) {
return const Center(
child: DmfOneLineMark(
width: 220.0,
launchProgress: 1.0, // Fully resting state
),
);
}
}
📖 API Reference
SplashScreen
| Parameter | Type | Default | Description |
|---|---|---|---|
initialLogoStyle |
LogoStyle |
LogoStyle.dmfOneLine |
Determines whether to render the kinetic one-line emblem (dmfOneLine) or full logo (dmfFullLogo). |
isDark |
bool |
false |
false activates Warm Cream light palette, true activates Deep Obsidian dark palette. Automatically sets system status bar overlay style. |
onAnimationComplete |
dynamic |
null |
Callback invoked upon completion ($2400\text{ ms}$). Accepts either void Function(BuildContext) or VoidCallback () => .... |
LogoStyle (Enum)
enum LogoStyle {
dmfOneLine, // Style 1: Horizontal D-M-F emblem with kinetic typography
dmfFullLogo, // Style 2: Official full DMF brand lockup
}
DmfOneLineMark
| Parameter | Type | Default | Description |
|---|---|---|---|
width |
double |
245.0 |
Display width in logical pixels. Native aspect ratio is $1242 : 408$ (~$3.044 : 1$). |
launchProgress |
double |
(required) | Normalized progress ($0.0 \to 1.0$) driving physical elevation glide and opacity. |
🎨 Asset Information
All high-definition master assets are bundled directly inside the package:
assets/images/dmf_emblem_one_line.png($1242 \times 408\text{px}$)assets/images/dmf-logo-light.png($1060 \times 204\text{px}$)assets/images/dmf-logo-dark.png($1060 \times 204\text{px}$)assets/fonts/Outfit-Variable.ttfassets/fonts/PlusJakartaSans-Variable.ttf
📱 Example Project
An interactive example app is included in the example/ directory demonstrating live style switching, theme toggling, and route replacement.
To run the example:
cd example
flutter run
📄 License
MIT © Digital Media Factory