diff --git a/CHANGELOG.md b/CHANGELOG.md index 158a9875..e8f44a50 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - **Data Grid preferences: removed "Confirm DML staging applications"** — it changed the SQL destructive-query confirmation (DROP / TRUNCATE / DELETE) and controlled nothing else. - **About shows the real version** instead of a hardcoded 0.4.17. - **MCP Server pane** — MongoDB connections can be shared (the server already had MongoDB tools), type badges use product names, the `querya-mcp` path is on its own line, copying configs and regenerating the token are separate, and recent calls are rows with a status icon. +- **One monospace font outside the result grid** — PostgreSQL, Redis and MongoDB views, the DML and destructive-query dialogs, the recovery screen, the welcome tour and monospace badges used the system's generic `monospace` family and looked different from the SQL editor; they now use the editor's font stack (#1633). ### Planned diff --git a/lib/features/mongodb/mongo_aggregation_workspace.dart b/lib/features/mongodb/mongo_aggregation_workspace.dart index 09d55290..8de20940 100644 --- a/lib/features/mongodb/mongo_aggregation_workspace.dart +++ b/lib/features/mongodb/mongo_aggregation_workspace.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart'; import 'package:querya_desktop/core/database/mongodb_connection.dart'; import 'package:querya_desktop/core/database/mongodb_service.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/mongodb/mongo_aggregation_stage.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_json_view.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_table_view.dart'; @@ -652,7 +653,8 @@ class _StageCardState extends material.State<_StageCard> { maxLines: null, minLines: 3, style: const material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12.5, height: 1.4, ), @@ -810,7 +812,8 @@ class _ExportDialogState extends material.State<_ExportDialog> { child: material.SelectableText( code, style: const material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12.5, height: 1.45, ), diff --git a/lib/features/mongodb/mongo_document_tree_view.dart b/lib/features/mongodb/mongo_document_tree_view.dart index 5f0f068b..a8523626 100644 --- a/lib/features/mongodb/mongo_document_tree_view.dart +++ b/lib/features/mongodb/mongo_document_tree_view.dart @@ -3,6 +3,7 @@ import 'dart:convert'; import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart'; import 'package:mongo_dart/mongo_dart.dart' show ObjectId; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/mongodb/mongo_ejson.dart'; import 'package:querya_desktop/features/mongodb/mongo_field_codec.dart'; import 'package:querya_desktop/shared/widgets/app_toast.dart'; @@ -318,7 +319,9 @@ class _MongoDocumentTreeViewState extends State { '_id: $idString', style: material.TextStyle( fontSize: 11, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, color: cs.mutedForeground, ), ), @@ -540,7 +543,8 @@ class _MongoDocumentTreeViewState extends State { Text( keyLabel, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, fontWeight: material.FontWeight.w600, color: matchesSearch && _searchQuery.isNotEmpty @@ -552,7 +556,8 @@ class _MongoDocumentTreeViewState extends State { Text( badgeLabel, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 11, color: cs.mutedForeground, ), @@ -615,7 +620,8 @@ class _MongoDocumentTreeViewState extends State { Text( keyLabel, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, fontWeight: material.FontWeight.w500, color: isMatch ? cs.primary : cs.foreground, @@ -624,7 +630,8 @@ class _MongoDocumentTreeViewState extends State { Text( ': ', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: cs.mutedForeground, ), @@ -634,7 +641,8 @@ class _MongoDocumentTreeViewState extends State { valueDisplay, overflow: TextOverflow.ellipsis, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, fontStyle: value == null ? material.FontStyle.italic : material.FontStyle.normal, diff --git a/lib/features/mongodb/mongo_documents_view.dart b/lib/features/mongodb/mongo_documents_view.dart index 6dfd8ac7..190c1143 100644 --- a/lib/features/mongodb/mongo_documents_view.dart +++ b/lib/features/mongodb/mongo_documents_view.dart @@ -5,6 +5,7 @@ import 'package:querya_desktop/core/database/destructive_sql_detector.dart'; import 'package:querya_desktop/core/database/mongodb_connection.dart'; import 'package:querya_desktop/core/database/mongodb_service.dart'; import 'package:querya_desktop/core/storage/app_settings.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/mongodb/mongo_add_document_dialog.dart'; import 'package:querya_desktop/features/mongodb/mongo_document_tree_view.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_json_view.dart'; @@ -797,7 +798,9 @@ class _DocumentCardState extends State<_DocumentCard> { maxLines: 1, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, color: scs.mutedForeground, ), ), @@ -850,7 +853,8 @@ class MongoFieldList extends StatelessWidget { overflow: TextOverflow.ellipsis, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontWeight: material.FontWeight.w600, color: colorScheme.foreground, ), @@ -864,7 +868,8 @@ class MongoFieldList extends StatelessWidget { maxLines: 1, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: shadcnCs.mutedForeground, ), ), diff --git a/lib/features/mongodb/mongo_indexes_view.dart b/lib/features/mongodb/mongo_indexes_view.dart index 1c709b38..396ed3fa 100644 --- a/lib/features/mongodb/mongo_indexes_view.dart +++ b/lib/features/mongodb/mongo_indexes_view.dart @@ -3,6 +3,7 @@ import 'dart:async' show unawaited; import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/mongodb_connection.dart'; import 'package:querya_desktop/core/database/mongodb_service.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/mongodb/mongo_create_index_dialog.dart'; import 'package:querya_desktop/features/mongodb/mongo_index_info.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; @@ -406,7 +407,9 @@ class _IndexCard extends material.StatelessWidget { material.SelectableText( index.keysFormatted, style: const material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, fontWeight: material.FontWeight.w500, ), diff --git a/lib/features/mongodb/mongo_query_workspace.dart b/lib/features/mongodb/mongo_query_workspace.dart index fc61c8b5..5fbeaf43 100644 --- a/lib/features/mongodb/mongo_query_workspace.dart +++ b/lib/features/mongodb/mongo_query_workspace.dart @@ -6,6 +6,7 @@ import 'package:querya_desktop/core/database/mongodb_connection.dart'; import 'package:querya_desktop/core/editor/querya_code_editor.dart'; import 'package:querya_desktop/core/editor/querya_code_language.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_json_view.dart'; import 'package:querya_desktop/features/mongodb/mongo_documents_table_view.dart'; import 'package:querya_desktop/features/mongodb/mongo_query_executor.dart'; @@ -242,7 +243,9 @@ class _MongoQueryWorkspaceState extends material.State { maxLines: 2, overflow: material.TextOverflow.ellipsis, style: const material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, ), ), @@ -500,7 +503,8 @@ class _MongoQueryWorkspaceState extends material.State { tab.error!, style: material.TextStyle( color: cs.destructive, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12.5, ), ), diff --git a/lib/features/onboarding/welcome_tour_dialog.dart b/lib/features/onboarding/welcome_tour_dialog.dart index d425f5d2..46747bea 100644 --- a/lib/features/onboarding/welcome_tour_dialog.dart +++ b/lib/features/onboarding/welcome_tour_dialog.dart @@ -5,6 +5,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart'; import 'package:querya_desktop/core/layout/window_layout.dart'; import 'package:querya_desktop/core/storage/app_settings.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/core/theme/querya_workbench_theme.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -79,7 +80,8 @@ class KbdBadge extends StatelessWidget { style: TextStyle( fontSize: fontSize, fontWeight: material.FontWeight.w600, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: Theme.of(context).colorScheme.foreground, ), ), diff --git a/lib/features/postgresql/postgres_browser_views.dart b/lib/features/postgresql/postgres_browser_views.dart index 3572faf9..45a0b238 100644 --- a/lib/features/postgresql/postgres_browser_views.dart +++ b/lib/features/postgresql/postgres_browser_views.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/postgres_service.dart'; import 'package:querya_desktop/core/database/postgres_metadata.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -165,7 +166,9 @@ class _PostgresIndexListViewState material.SelectableText( r.indexDef, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 11, height: 1.4, color: cs.foreground, @@ -331,7 +334,9 @@ class _PostgresTriggerListViewState material.SelectableText( r.definition, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 11, height: 1.4, color: cs.foreground, @@ -470,7 +475,9 @@ class _PostgresTypeListViewState extends material.State { child: material.Text( r.name, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: cs.foreground, ), @@ -616,7 +623,9 @@ class _PostgresExtensionListViewState child: material.Text( r.name, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, fontWeight: material.FontWeight.w600, color: cs.foreground, @@ -772,7 +781,9 @@ class _PostgresFdwListViewState extends material.State { child: material.Text( '${r.name}${r.handler != null ? ' · ${r.handler}' : ''}', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: cs.foreground, ), @@ -799,7 +810,9 @@ class _PostgresFdwListViewState extends material.State { child: material.Text( '${r.serverName} → ${r.fdwName}', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: cs.foreground, ), diff --git a/lib/features/postgresql/postgres_routine_view.dart b/lib/features/postgresql/postgres_routine_view.dart index fee87286..334fffa7 100644 --- a/lib/features/postgresql/postgres_routine_view.dart +++ b/lib/features/postgresql/postgres_routine_view.dart @@ -4,6 +4,7 @@ import 'package:querya_desktop/core/database/postgres_service.dart'; import 'package:querya_desktop/core/editor/querya_code_editor.dart'; import 'package:querya_desktop/core/editor/querya_code_language.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/workspace/sql_editor_chrome.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -233,7 +234,9 @@ class _PostgresRoutineViewState extends material.State { fontSize: 12, fontWeight: material.FontWeight.w600, color: cs.foreground, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, ), ), ), diff --git a/lib/features/postgresql/postgres_sequence_view.dart b/lib/features/postgresql/postgres_sequence_view.dart index 2159c73d..5adfdef2 100644 --- a/lib/features/postgresql/postgres_sequence_view.dart +++ b/lib/features/postgresql/postgres_sequence_view.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/postgres_connection.dart'; import 'package:querya_desktop/core/database/postgres_service.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -214,7 +215,9 @@ class _PostgresSequenceViewState extends material.State { material.SelectableText( d.lastValue, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 16, color: cs.foreground, ), @@ -245,7 +248,9 @@ class _PostgresSequenceViewState extends material.State { child: material.SelectableText( d.ddl, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, height: 1.45, color: cs.foreground, @@ -276,7 +281,8 @@ class _PostgresSequenceViewState extends material.State { child: material.SelectableText( v, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: cs.foreground, ), diff --git a/lib/features/postgresql/postgres_table_privileges_dialog.dart b/lib/features/postgresql/postgres_table_privileges_dialog.dart index 253d8210..10ddd3ce 100644 --- a/lib/features/postgresql/postgres_table_privileges_dialog.dart +++ b/lib/features/postgresql/postgres_table_privileges_dialog.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/postgres_connection.dart'; import 'package:querya_desktop/core/layout/window_layout.dart'; import 'package:querya_desktop/core/database/postgres_metadata.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -119,7 +120,9 @@ class _PrivilegesDialogBodyState extends material.State<_PrivilegesDialogBody> { material.Text( '${widget.schema}.${widget.tableName}', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: theme.mutedForeground, ), @@ -214,7 +217,8 @@ class _PrivilegesDialogBodyState extends material.State<_PrivilegesDialogBody> { child: material.Text( r.privilegeType, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: theme.foreground, ), diff --git a/lib/features/recovery/querya_startup_recovery_app.dart b/lib/features/recovery/querya_startup_recovery_app.dart index 5b116102..63e5561d 100644 --- a/lib/features/recovery/querya_startup_recovery_app.dart +++ b/lib/features/recovery/querya_startup_recovery_app.dart @@ -4,6 +4,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/app/app.dart'; import 'package:querya_desktop/core/storage/app_data_root.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/core/theme/theme_controller.dart'; import 'package:querya_desktop/core/ui/querya_icons.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; @@ -182,7 +183,9 @@ class _QueryaStartupRecoveryAppState child: material.SelectableText( widget.error.toString(), style: const material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12, ), ), diff --git a/lib/features/redis/editors/redis_hash_editor.dart b/lib/features/redis/editors/redis_hash_editor.dart index 4d144f17..098914f0 100644 --- a/lib/features/redis/editors/redis_hash_editor.dart +++ b/lib/features/redis/editors/redis_hash_editor.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn hide TextExtension; @@ -145,7 +146,8 @@ class RedisFieldRow extends StatelessWidget { overflow: material.TextOverflow.ellipsis, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontWeight: material.FontWeight.w600, color: shadcnCs.primary, ), @@ -157,7 +159,8 @@ class RedisFieldRow extends StatelessWidget { value, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: colorScheme.foreground, ), ), diff --git a/lib/features/redis/editors/redis_list_editor.dart b/lib/features/redis/editors/redis_list_editor.dart index e491fae7..6cb0b9c4 100644 --- a/lib/features/redis/editors/redis_list_editor.dart +++ b/lib/features/redis/editors/redis_list_editor.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn hide TextExtension; @@ -236,7 +237,8 @@ class RedisIndexedValueRow extends StatelessWidget { value, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: colorScheme.foreground, ), ), @@ -254,7 +256,8 @@ class RedisIndexedValueRow extends StatelessWidget { 'binary', style: material.TextStyle( fontSize: 10, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: shadcnCs.mutedForeground, ), ), diff --git a/lib/features/redis/editors/redis_set_editor.dart b/lib/features/redis/editors/redis_set_editor.dart index 82af10f8..76c57e06 100644 --- a/lib/features/redis/editors/redis_set_editor.dart +++ b/lib/features/redis/editors/redis_set_editor.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn hide TextExtension; @@ -126,7 +127,8 @@ class RedisMemberRow extends StatelessWidget { member, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: colorScheme.foreground, ), ), diff --git a/lib/features/redis/editors/redis_string_editor.dart b/lib/features/redis/editors/redis_string_editor.dart index 6c4d7d09..7972c1ea 100644 --- a/lib/features/redis/editors/redis_string_editor.dart +++ b/lib/features/redis/editors/redis_string_editor.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -41,7 +42,8 @@ class RedisStringEditor extends material.StatelessWidget { bulk.toHex(), style: const material.TextStyle( fontSize: 13, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, ), ), const Gap(12), @@ -51,7 +53,8 @@ class RedisStringEditor extends material.StatelessWidget { bulk.toBase64(), style: const material.TextStyle( fontSize: 13, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, ), ), ], @@ -88,7 +91,8 @@ class RedisStringEditor extends material.StatelessWidget { maxLines: null, style: const material.TextStyle( fontSize: 13, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, ), decoration: const material.InputDecoration( border: material.InputBorder.none, diff --git a/lib/features/redis/editors/redis_zset_editor.dart b/lib/features/redis/editors/redis_zset_editor.dart index f8a8e575..6410ead7 100644 --- a/lib/features/redis/editors/redis_zset_editor.dart +++ b/lib/features/redis/editors/redis_zset_editor.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/redis_bulk.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn hide TextExtension; @@ -161,7 +162,8 @@ class RedisScoredMemberRow extends StatelessWidget { member, style: material.TextStyle( fontSize: 12, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: colorScheme.foreground, ), ), diff --git a/lib/features/redis/redis_cli_workspace.dart b/lib/features/redis/redis_cli_workspace.dart index 8109de68..f3f1fdd9 100644 --- a/lib/features/redis/redis_cli_workspace.dart +++ b/lib/features/redis/redis_cli_workspace.dart @@ -7,6 +7,7 @@ import 'package:querya_desktop/core/database/destructive_sql_detector.dart'; import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/core/database/redis_connection.dart'; import 'package:querya_desktop/core/storage/local_db.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -621,7 +622,9 @@ class _RedisCliWorkspaceState extends material.State { child: Text( '${widget.connection.host}:${widget.connection.port} [db$_currentDb]', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 11, color: cs.mutedForeground, ), @@ -699,7 +702,9 @@ class _RedisCliWorkspaceState extends material.State { child: Text( suggestion, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 11, fontWeight: material.FontWeight.w600, color: cs.primary, @@ -730,7 +735,8 @@ class _RedisCliWorkspaceState extends material.State { Text( 'db$_currentDb >', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 13, fontWeight: material.FontWeight.w600, color: cs.primary, @@ -801,7 +807,8 @@ class _RedisCliWorkspaceState extends material.State { Text( 'db${entry.database} > ', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, fontWeight: material.FontWeight.w600, color: cs.primary, @@ -811,7 +818,8 @@ class _RedisCliWorkspaceState extends material.State { child: Text( entry.command, style: const material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, fontWeight: material.FontWeight.w600, ), @@ -831,7 +839,9 @@ class _RedisCliWorkspaceState extends material.State { child: Text( '${entry.latencyMs} ms', style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 10, color: cs.mutedForeground, ), @@ -858,7 +868,8 @@ class _RedisCliWorkspaceState extends material.State { material.SelectableText( entry.output, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontSize: 12, color: entry.isError ? cs.destructive diff --git a/lib/features/redis/redis_key_editor.dart b/lib/features/redis/redis_key_editor.dart index 3725bfce..e5515793 100644 --- a/lib/features/redis/redis_key_editor.dart +++ b/lib/features/redis/redis_key_editor.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/database/destructive_sql_detector.dart'; import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/core/database/redis_connection.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/redis/editors/redis_hash_editor.dart'; import 'package:querya_desktop/features/redis/editors/redis_list_editor.dart'; import 'package:querya_desktop/features/redis/editors/redis_set_editor.dart'; @@ -755,7 +756,8 @@ class _RedisKeyEditorState extends material.State { maxLines: 1, style: material.TextStyle( fontSize: 14, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, fontWeight: material.FontWeight.w500, color: cs.foreground, ), diff --git a/lib/features/redis/redis_keys_view.dart b/lib/features/redis/redis_keys_view.dart index 640472fa..d977545c 100644 --- a/lib/features/redis/redis_keys_view.dart +++ b/lib/features/redis/redis_keys_view.dart @@ -3,6 +3,7 @@ import 'package:querya_desktop/core/database/destructive_sql_detector.dart'; import 'package:querya_desktop/core/database/redis_bulk.dart'; import 'package:querya_desktop/core/database/redis_connection.dart'; import 'package:querya_desktop/core/theme/querya_semantic_palette.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/features/workspace/destructive_query_dialog.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:shadcn_flutter/shadcn_flutter.dart' as shadcn @@ -541,7 +542,9 @@ class _RedisKeysViewState extends material.State { textAlign: material.TextAlign.center, style: const material.TextStyle( fontSize: 13, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, ), decoration: material.InputDecoration( contentPadding: material.EdgeInsets.zero, @@ -750,7 +753,8 @@ class _FolderTile extends material.StatelessWidget { style: material.TextStyle( fontSize: 13, fontWeight: material.FontWeight.w600, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: QueryaTypography.monoFontFamilyFallback, color: cs.foreground, ), ), @@ -908,7 +912,9 @@ class _KeyTile extends material.StatelessWidget { maxLines: 1, style: material.TextStyle( fontSize: 13, - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, color: cs.foreground, ), ), diff --git a/lib/features/workspace/destructive_query_dialog.dart b/lib/features/workspace/destructive_query_dialog.dart index 24d7471d..ac00096b 100644 --- a/lib/features/workspace/destructive_query_dialog.dart +++ b/lib/features/workspace/destructive_query_dialog.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart'; import 'package:querya_desktop/core/database/destructive_sql_detector.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -273,7 +274,9 @@ class _DestructiveQueryDialogState child: material.SelectableText( widget.sql, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12.5, height: 1.45, color: isDark diff --git a/lib/features/workspace/dml_preview_dialog.dart b/lib/features/workspace/dml_preview_dialog.dart index d99fc430..620527c0 100644 --- a/lib/features/workspace/dml_preview_dialog.dart +++ b/lib/features/workspace/dml_preview_dialog.dart @@ -1,6 +1,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart'; import 'package:querya_desktop/core/database/table_mutation_engine.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/shared/widgets/widgets.dart'; import 'package:querya_desktop/core/ui/querya_control_tokens.dart'; @@ -270,7 +271,9 @@ class _DmlPreviewDialogState extends material.State<_DmlPreviewDialog> { child: material.SelectableText( sql, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 12.5, height: 1.45, color: isDark diff --git a/lib/features/workspace/table_view_staging.dart b/lib/features/workspace/table_view_staging.dart index 1b7abf1e..37acfea7 100644 --- a/lib/features/workspace/table_view_staging.dart +++ b/lib/features/workspace/table_view_staging.dart @@ -2,6 +2,7 @@ import 'package:flutter/material.dart' as material; import 'package:flutter/services.dart' show Clipboard, ClipboardData; import 'package:querya_desktop/core/database/table_mutation_engine.dart'; import 'package:querya_desktop/core/database/table_schema_meta.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; import 'package:querya_desktop/core/ui/querya_tooltip.dart'; import 'package:querya_desktop/features/workspace/data_grid_staging_buffer.dart'; import 'package:querya_desktop/features/workspace/dml_preview_dialog.dart'; @@ -353,7 +354,9 @@ class _SaveFailedDialogState extends material.State<_SaveFailedDialog> { child: material.SelectableText( info.details, style: material.TextStyle( - fontFamily: 'monospace', + fontFamily: QueryaTypography.mono, + fontFamilyFallback: + QueryaTypography.monoFontFamilyFallback, fontSize: 11, color: cs.mutedForeground, ), diff --git a/lib/shared/widgets/querya_badge.dart b/lib/shared/widgets/querya_badge.dart index 1d06c163..554efe3c 100644 --- a/lib/shared/widgets/querya_badge.dart +++ b/lib/shared/widgets/querya_badge.dart @@ -1,5 +1,6 @@ import 'package:flutter/material.dart' as material; import 'package:querya_desktop/core/theme/querya_theme_scope.dart'; +import 'package:querya_desktop/core/theme/querya_typography.dart'; /// Semantic status variant for [QueryaBadge.status]. enum QueryaBadgeStatus { @@ -203,7 +204,9 @@ class QueryaBadge extends material.StatelessWidget { style: material.TextStyle( fontSize: 10, fontWeight: material.FontWeight.w600, - fontFamily: isMonospace ? 'monospace' : null, + fontFamily: isMonospace ? QueryaTypography.mono : null, + fontFamilyFallback: + isMonospace ? QueryaTypography.monoFontFamilyFallback : null, color: fg, letterSpacing: 0.3, ),