fix: corrige erros de linter CSS e meta viewport para acessibilidade e compatibilidade Safari
This commit is contained in:
+1
-1
@@ -2,7 +2,7 @@
|
||||
<html lang="pt-BR">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="theme-color" content="#10a37f">
|
||||
<meta name="description" content="Assistente virtual da Camila - Profesora">
|
||||
<!-- PWA Manifest -->
|
||||
|
||||
+9
-5
@@ -88,8 +88,8 @@
|
||||
}
|
||||
|
||||
html {
|
||||
height: 100%;
|
||||
height: -webkit-fill-available;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
body {
|
||||
@@ -100,8 +100,8 @@ body {
|
||||
-webkit-font-smoothing: antialiased;
|
||||
-moz-osx-font-smoothing: grayscale;
|
||||
line-height: 1.5;
|
||||
height: 100%;
|
||||
height: -webkit-fill-available;
|
||||
height: 100%;
|
||||
height: 100dvh;
|
||||
width: 100%;
|
||||
}
|
||||
@@ -139,8 +139,8 @@ body {
|
||||
|
||||
.login-card {
|
||||
background: rgba(23, 23, 23, 0.65);
|
||||
backdrop-filter: blur(20px);
|
||||
-webkit-backdrop-filter: blur(20px);
|
||||
backdrop-filter: blur(20px);
|
||||
border: 1px solid var(--border-light);
|
||||
border-radius: 24px;
|
||||
padding: 40px 32px;
|
||||
@@ -181,6 +181,7 @@ body {
|
||||
font-size: 28px;
|
||||
font-weight: 700;
|
||||
color: #fff;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
@@ -706,6 +707,7 @@ body {
|
||||
font-weight: 600;
|
||||
font-size: 14px;
|
||||
color: white;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
flex-shrink: 0;
|
||||
}
|
||||
@@ -799,8 +801,8 @@ body {
|
||||
justify-content: space-between;
|
||||
border-bottom: 1px solid var(--border-light);
|
||||
background-color: rgba(13, 13, 13, 0.8);
|
||||
backdrop-filter: blur(10px);
|
||||
-webkit-backdrop-filter: blur(10px);
|
||||
backdrop-filter: blur(10px);
|
||||
position: sticky;
|
||||
top: 0;
|
||||
z-index: 8;
|
||||
@@ -1693,6 +1695,7 @@ code {
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background: rgba(0, 0, 0, 0.6);
|
||||
-webkit-backdrop-filter: blur(4px);
|
||||
backdrop-filter: blur(4px);
|
||||
z-index: 1000;
|
||||
display: flex;
|
||||
@@ -2266,8 +2269,8 @@ code {
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
background-color: rgba(0, 0, 0, 0.6);
|
||||
backdrop-filter: blur(8px);
|
||||
-webkit-backdrop-filter: blur(8px);
|
||||
backdrop-filter: blur(8px);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
align-items: center;
|
||||
@@ -3069,6 +3072,7 @@ code {
|
||||
font-weight: 500;
|
||||
cursor: pointer;
|
||||
transition: all 0.2s ease;
|
||||
-webkit-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
const { Pool } = require('pg');
|
||||
require('dotenv').config();
|
||||
|
||||
const pool = new Pool({
|
||||
connectionString: process.env.DATABASE_URL
|
||||
});
|
||||
|
||||
async function main() {
|
||||
try {
|
||||
const tablesRes = await pool.query(`
|
||||
SELECT table_name
|
||||
FROM information_schema.tables
|
||||
WHERE table_schema = 'escola'
|
||||
ORDER BY table_name;
|
||||
`);
|
||||
|
||||
console.log('--- TABELAS NO ESQUEMA escola ---');
|
||||
for (const row of tablesRes.rows) {
|
||||
console.log(`\nTabela: ${row.table_name}`);
|
||||
const columnsRes = await pool.query(`
|
||||
SELECT column_name, data_type, is_nullable, column_default
|
||||
FROM information_schema.columns
|
||||
WHERE table_schema = 'escola' AND table_name = $1
|
||||
ORDER BY ordinal_position;
|
||||
`, [row.table_name]);
|
||||
|
||||
for (const col of columnsRes.rows) {
|
||||
console.log(` - ${col.column_name}: ${col.data_type} (null: ${col.is_nullable}, default: ${col.column_default})`);
|
||||
}
|
||||
}
|
||||
} catch (err) {
|
||||
console.error('Erro ao ler tabelas:', err);
|
||||
} finally {
|
||||
await pool.end();
|
||||
}
|
||||
}
|
||||
|
||||
main();
|
||||
@@ -1,36 +0,0 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const { exec } = require('child_process');
|
||||
|
||||
const concatFilePath = path.join(__dirname, 'test_concat.txt');
|
||||
const bgMusicPath = path.join(__dirname, '..', 'public', 'assets', 'audio', 'alegre.mp3');
|
||||
const outputFilePath = path.join(__dirname, '..', 'public', 'generated-media', 'test_video.mp4');
|
||||
|
||||
const duration = 3;
|
||||
const totalDuration = 6;
|
||||
|
||||
// Cria pasta generated-media se não existir
|
||||
const mediaDir = path.dirname(outputFilePath);
|
||||
if (!fs.existsSync(mediaDir)) {
|
||||
fs.mkdirSync(mediaDir, { recursive: true });
|
||||
}
|
||||
|
||||
// Usar camila_prof.png duas vezes
|
||||
const testImg = path.join(__dirname, '..', 'public', 'assets', 'camila_prof.png');
|
||||
|
||||
let concatContent = `file '${testImg}'\nduration ${duration}\nfile '${testImg}'\nduration ${duration}\nfile '${testImg}'\n`;
|
||||
fs.writeFileSync(concatFilePath, concatContent);
|
||||
|
||||
const ffmpegCommand = `ffmpeg -y -f concat -safe 0 -i "${concatFilePath}" -i "${bgMusicPath}" -c:v libx264 -pix_fmt yuv420p -c:a aac -shortest -t ${totalDuration} "${outputFilePath}"`;
|
||||
console.log('Executando:', ffmpegCommand);
|
||||
|
||||
exec(ffmpegCommand, (error, stdout, stderr) => {
|
||||
console.log('STDOUT:', stdout);
|
||||
console.error('STDERR:', stderr);
|
||||
if (error) {
|
||||
console.error('Erro de execução:', error);
|
||||
process.exit(1);
|
||||
}
|
||||
console.log('Vídeo gerado com sucesso em:', outputFilePath);
|
||||
process.exit(0);
|
||||
});
|
||||
Reference in New Issue
Block a user