diff --git a/src/components/Header.tsx b/src/components/Header.tsx index 5fee007..70a86c4 100644 --- a/src/components/Header.tsx +++ b/src/components/Header.tsx @@ -8,29 +8,24 @@ export const Header: React.FC = () => { return ( <> -
-
-
-
🍌
-

- Nano Banana AI 图像编辑器 -

-

- NB 编辑器 -

-
-
- 1.0 +
+
+
+
🍌
+

+ Nano Banana +

-
+
diff --git a/src/components/HistoryPanel.tsx b/src/components/HistoryPanel.tsx index be45df8..dddab0c 100644 --- a/src/components/HistoryPanel.tsx +++ b/src/components/HistoryPanel.tsx @@ -211,19 +211,19 @@ export const HistoryPanel: React.FC = () => { } return ( -
+
{/* 头部 */} -
+
- -

历史记录和变体

+ +

历史记录

{/* 筛选和搜索控件 */} -
-
+
+
setStartDate(e.target.value)} - className="flex-1 text-xs p-1 border rounded" + className="flex-1 text-xs p-1.5 border border-gray-200 rounded text-gray-600 bg-gray-50 focus:outline-none focus:ring-1 focus:ring-yellow-400" placeholder="开始日期" /> setEndDate(e.target.value)} - className="flex-1 text-xs p-1 border rounded" + className="flex-1 text-xs p-1.5 border border-gray-200 rounded text-gray-600 bg-gray-50 focus:outline-none focus:ring-1 focus:ring-yellow-400" placeholder="结束日期" />
@@ -263,13 +266,13 @@ export const HistoryPanel: React.FC = () => { type="text" value={searchTerm} onChange={(e) => setSearchTerm(e.target.value)} - className="flex-1 text-xs p-1 border rounded-l" - placeholder="搜索提示词或编辑指令..." + className="flex-1 text-xs p-1.5 border border-gray-200 rounded-l bg-gray-50 focus:outline-none focus:ring-1 focus:ring-yellow-400" + placeholder="搜索提示词..." />
diff --git a/src/components/ImageCanvas.tsx b/src/components/ImageCanvas.tsx index 8c6949f..3588f70 100644 --- a/src/components/ImageCanvas.tsx +++ b/src/components/ImageCanvas.tsx @@ -188,29 +188,29 @@ export const ImageCanvas: React.FC = () => { return (
{/* 工具栏 */} -
+
{/* 左侧 - 缩放控制 */} -
- - + {Math.round(canvasZoom * 100)}% - -
{/* 右侧 - 工具和操作 */} -
+
{selectedTool === 'mask' && ( <> -
+
画笔: { max="50" value={brushSize} onChange={(e) => setBrushSize(parseInt(e.target.value))} - className="w-16 h-2 bg-gray-800 rounded-lg appearance-none cursor-pointer slider" + className="w-12 h-2 bg-gray-800 rounded-lg appearance-none cursor-pointer slider" /> {brushSize}
@@ -227,6 +227,7 @@ export const ImageCanvas: React.FC = () => { size="sm" onClick={clearBrushStrokes} disabled={brushStrokes.length === 0} + className="h-8 w-8 p-0" > @@ -237,16 +238,14 @@ export const ImageCanvas: React.FC = () => { variant="outline" size="sm" onClick={() => setShowMasks(!showMasks)} - className={cn(showMasks && 'bg-yellow-400/10 border-yellow-400/50')} + className={cn(showMasks && 'bg-yellow-400/10 border-yellow-400/50', 'h-8 w-8 p-0')} > {showMasks ? : } - 遮罩 {canvasImage && ( - )}
@@ -260,14 +259,14 @@ export const ImageCanvas: React.FC = () => { > {!image && !isGenerating && (
-
-
🍌
-

- 欢迎使用 Nano Banana 框架 +
+
🍌
+

+ Nano Banana AI

-

+

{selectedTool === 'generate' - ? '首先在提示框中描述您想要创建的内容' + ? '在提示框中描述您想要创建的内容' : '上传图像开始编辑' }

@@ -276,10 +275,10 @@ export const ImageCanvas: React.FC = () => { )} {isGenerating && ( -
-
-
-

正在创建您的图像...

+
+
+
+

正在创建图像...

)} @@ -353,29 +352,18 @@ export const ImageCanvas: React.FC = () => {
{/* 状态栏 */} -
+
-
+
{brushStrokes.length > 0 && ( - {brushStrokes.length} 个画笔描边{brushStrokes.length !== 1 ? 's' : ''} + {brushStrokes.length} 个描边 )}
-
+
- © 2025 Mark Fulton - - - Reinventing.AI Solutions - + © 2025 Mark Fulton - - - 由 Gemini 2.5 Flash Image 提供支持
diff --git a/src/components/PromptComposer.tsx b/src/components/PromptComposer.tsx index 239a677..4699779 100644 --- a/src/components/PromptComposer.tsx +++ b/src/components/PromptComposer.tsx @@ -156,43 +156,46 @@ export const PromptComposer: React.FC = () => { return ( <> -
+
-
-

模式

-
+
+

模式

+
-
+
{tools.map((tool) => ( ))} @@ -206,7 +209,7 @@ export const PromptComposer: React.FC = () => { onDragLeave={handleDragLeave} onDrop={handleDrop} className={cn( - "border-2 border-dashed rounded-lg p-6 text-center transition-colors", + "border border-dashed rounded-md p-4 text-center transition-colors", isDragOver ? "border-yellow-400 bg-yellow-400/10" : "border-gray-300 hover:border-yellow-400" @@ -216,13 +219,13 @@ export const PromptComposer: React.FC = () => { {selectedTool === 'generate' ? '参考图像' : selectedTool === 'edit' ? '样式参考' : '上传图像'} {selectedTool === 'mask' && ( -

使用遮罩编辑图像

+

使用遮罩编辑图像

)} {selectedTool === 'generate' && ( -

可选,最多2张图像

+

可选,最多2张图像

)} {selectedTool === 'edit' && ( -

+

{canvasImage ? '可选样式参考,最多2张图像' : '上传要编辑的图像,最多2张图像'}

)} @@ -235,29 +238,30 @@ export const PromptComposer: React.FC = () => { className="hidden" /> -
- +
+

- {isDragOver ? "释放文件以上传" : "拖拽图像到此处或点击上传"} + {isDragOver ? "释放文件以上传" : "拖拽或点击上传"}

- 支持 JPG, PNG, GIF 格式 + 支持 JPG, PNG, GIF

@@ -266,13 +270,13 @@ export const PromptComposer: React.FC = () => { {/* Show uploaded images preview */} {((selectedTool === 'generate' && uploadedImages.length > 0) || (selectedTool === 'edit' && editReferenceImages.length > 0)) && ( -
+
{(selectedTool === 'generate' ? uploadedImages : editReferenceImages).map((image, index) => (
{`参考图像 -
+
参考 {index + 1}
@@ -291,36 +295,36 @@ export const PromptComposer: React.FC = () => { {/* 提示输入 */}
-