fix: corrige erros de linter CSS e meta viewport para acessibilidade e compatibilidade Safari

This commit is contained in:
2026-06-03 14:20:11 +00:00
parent 6372f99275
commit 238c2f85ad
4 changed files with 10 additions and 80 deletions
+1 -1
View File
@@ -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
View File
@@ -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;
}
-38
View File
@@ -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();
-36
View File
@@ -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);
});