意见反馈

23 阅读8分钟

****

<html lang**="zh-CN" ><meta http-equiv=**"Content-Type" content="text/html; charset=UTF-8" >****

<meta name**=**"viewport" content="width=device-width, initial-scale=1" >****

意见反馈|加入社群|去商店评价 ****

<meta name**=**"color-scheme" content="light dark" >****

****

:root{

--bg: #0b0c0f;

--panel: #11131a;

--card: #151823;

--text: #e6e6eb;

--muted:#9aa0aa;

--brand:#6aa4ff;

--ok:#2ecc71;

--warn:#f39c12;

--danger:#e74c3c;

--border: #232737;

--shadow: 0 8px 24px rgba(0,0,0,.35);

}

@media (prefers-color-scheme: light){

:root{ --bg:#f6f7fb; --panel:#ffffff; --card:#ffffff; --text:#11131a; --muted:#6b7280; --border:#e5e7eb; --shadow:0 10px 30px rgba(17,24,39,.06); }

}

*{ box-sizing:border-box; }

body{ margin:0; font-family: ui-sans-serif, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Apple Color Emoji", "Segoe UI Emoji"; background:var(--bg); color:var(--text); }

.wrap{ max-width:960px; margin:32px auto; padding:0 16px; }

header{ display:flex; align-items:center; justify-content:space-between; gap:12px; margin-bottom:16px; }

.brand{ display:flex; align-items:center; gap:12px; }

.logo{ width:36px; height:36px; border-radius:12px; background:linear-gradient(135deg, var(--brand), #9d7dff); box-shadow: var(--shadow); }

h1{ font-size:20px; margin:0; }

.tabs{ display:flex; gap:8px; background:var(--panel); border:1px solid var(--border); padding:6px; border-radius:14px; box-shadow: var(--shadow); position:sticky; top:8px; z-index:5; }

.tab{ flex:1; text-align:center; padding:10px 12px; border-radius:10px; cursor:pointer; user-select:none; border:1px solid transparent; }

.tab[aria-selected="true"]{ background:var(--card); border-color:var(--border); }

.tab:focus-visible{ outline:2px solid var(--brand); outline-offset:2px; }

.card{ background:var(--card); border:1px solid var(--border); border-radius:16px; padding:18px; margin-top:16px; box-shadow: var(--shadow); }

.row{ display:grid; grid-template-columns:150px 1fr; gap:12px; align-items:center; margin:12px 0; }

.row textarea{ min-height:120px; }

label{ color:var(--muted); font-size:14px; }

input[type="text"], input[type="email"], select, textarea{ width:100%; padding:10px 12px; border-radius:12px; border:1px solid var(--border); background:transparent; color:var(--text); }

textarea{ resize:vertical; }

.btns{ display:flex; flex-wrap:wrap; gap:10px; margin-top:12px; }

button, .btn{ border:1px solid var(--border); background:var(--panel); color:var(--text); padding:10px 14px; border-radius:12px; cursor:pointer; box-shadow: var(--shadow); text-decoration:none; display:inline-flex; align-items:center; gap:8px; }

button.primary, .btn.primary{ background:linear-gradient(135deg, var(--brand), #9d7dff); border:none; color:white; }

.btn.success{ background:linear-gradient(135deg, #2ecc71, #27ae60); border:none; color:white; }

.btn.warn{ background:linear-gradient(135deg, #f39c12, #e67e22); border:none; color:white; }

.btn.disabled{ opacity:.55; cursor:not-allowed; pointer-events:none; }

.muted{ color:var(--muted); font-size:13px; }

.grid{ display:grid; grid-template-columns: repeat(auto-fit, minmax(260px,1fr)); gap:16px; }

.kvs{ display:grid; grid-template-columns: 1fr auto; gap:8px; }

.mono{ font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }

.stars{ display:flex; gap:6px; }

.star{ width:28px; height:28px; border-radius:50%; display:grid; place-items:center; border:1px solid var(--border); cursor:pointer; }

.star[aria-checked="true"]{ background:gold; color:#111; }

.badge{ display:inline-flex; align-items:center; gap:6px; padding:2px 8px; border-radius:999px; font-size:12px; border:1px solid var(--border); }

.badge.full{ background:linear-gradient(135deg, var(--warn), #e67e22); color:white; border:none; }

footer{ margin:22px 4px; text-align:center; color:var(--muted); font-size:12px; }

@media (max-width:640px){ .row{ grid-template-columns:1fr; } .tabs{ position:static; } }

****

****

****

<div class**=**"wrap" >****

****

<div class**=**"brand" >****

<div class**=**"logo" aria-hidden="true" >****

****

****

意见反馈 / 加入社群 / 去商店评价

****

****

****

<a class**=**"btn" id="ghLink" target="_blank" rel="noopener" href="github.com/timetrails-…" > 仓库主页 ****

****

<nav class**=**"tabs" role="tablist" aria-label="主选项卡" >****

<div class**=**"tab" role="tab" id="tab-appstore" aria-controls="panel-appstore" aria-selected="true" tabindex="0" data-tab="appstore" > 去商店评价 ****

<div class**=**"tab" role="tab" id="tab-feedback" aria-controls="panel-feedback" aria-selected="false" tabindex="-1" data-tab="feedback" > 提交反馈 ****

<div class**=**"tab" role="tab" id="tab-community" aria-controls="panel-community" aria-selected="false" tabindex="-1" data-tab="community" > 加入交流群 ****

****

<section class**=**"card" id="panel-feedback" role="tabpanel" aria-labelledby="tab-feedback" aria-hidden="true" hidden="" >****

<div class**=**"row" >****

<label for**=**"fb-title" > 标题 ****

<input id**=**"fb-title" type="text" placeholder="简要描述你的问题或建议" >****

****

<div class**=**"row" >****

<label for**=**"fb-type" > 类型 ****

<select id**=**"fb-type" >****

<option value**=**"bug" > 缺陷/报错 ****

<option value**=**"feature" > 功能建议 ****

<option value**=**"uiux" > 交互/体验 ****

<option value**=**"other" > 其他 ****

****

****

<div class**=**"row" >****

<label for**=**"fb-content" > 详细描述 ****

<textarea id**=**"fb-content" placeholder="复现步骤 / 期望行为 / 实际结果 / 截图链接 …" >****

****

<div class**=**"row" >****

体验评分 ****

<div class**=**"stars" id="stars" aria-label="评分 1-5 星" >****

<div class**=**"star" role="radio" data-v="1" > 1 ****

<div class**=**"star" role="radio" data-v="2" > 2 ****

<div class**=**"star" role="radio" data-v="3" > 3 ****

<div class**=**"star" role="radio" data-v="4" > 4 ****

<div class**=**"star" role="radio" data-v="5" > 5 ****

****

****

<div class**=**"row" >****

<label for**=**"contact" > 可选联系方式 ****

<input id**=**"contact" type="text" placeholder="邮箱 / QQ" >****

****

<div class**=**"row" >****

****

****

<label class**="muted" ><input id=**"sysinfo" type="checkbox" checked="" > 附带浏览器与系统信息(便于排查) ****

****

****

<div class**=**"btns" >****

<a class**=**"btn primary" id="btn-issue" target="_blank" rel="noopener" > 通过 GitHub Issue 提交 ****

<a class**=**"btn" id="btn-mail" > 通过邮件提交 ****

<button id**=**"btn-copy-template" > 复制模板 ****

****

<p class**=**"muted" > 提示:若 GitHub 需要登录,你也可以切到“去商店评价”或通过邮件反馈。

****

****

<section class**=**"card" id="panel-community" role="tabpanel" aria-labelledby="tab-community" hidden="" aria-hidden="true" >****

<div class**=**"grid" >****

****

QQ 群 1

****

<div class**=**"kvs" >****

<input id**=**"qq1-number" class="mono" type="text" readonly="" >****

<button data-copy**=**"#qq1-number" > 复制群号 ****

****

<div class**=**"btns" style="margin-top:10px;" >****

<a class**=**"btn success" id="btn-qq1-join" target="_blank" rel="noopener" href="qm.qq.com/q/WmKwcZcZW" > 一键加群 ****

<a class**=**"btn" id="btn-qq1-url-copy" > 复制加群链接 ****

****

****

****

QQ 群 2 <span class**=**"badge full" > 已满

****

<div class**=**"kvs" >****

<input id**=**"qq2-number" class="mono" type="text" readonly="" >****

<button data-copy**=**"#qq2-number" > 复制群号 ****

****

<div class**=**"btns" style="margin-top:10px;" >****

<a class**=**"btn success disabled" id="btn-qq2-join" aria-disabled="true" tabindex="-1" title="该群已满" > 一键加群(已满) ****

<a class**=**"btn" id="btn-qq2-url-copy" > 复制加群链接 ****

****

****

****

****

<section class**=**"card" id="panel-appstore" role="tabpanel" aria-labelledby="tab-appstore" aria-hidden="false" >****

<div class**=**"row" >****

App Store ****

<div class**=**"btns" >****

<a class**=**"btn warn" id="btn-appstore-review" > 去 App Store 评价 ****

<a class**=**"btn" id="btn-appstore-copy" > 复制评价链接 ****

<a class**=**"btn" id="btn-appstore-open" > 打开 App 详情页 ****

<a class**=**"btn" id="btn-appstore-copy-detail" > 复制详情页链接 ****

****

<p class**=**"muted" style="margin-top:8px;" > 在 iPhone/iPad 上会尝试直接拉起 App Store;其他平台将打开网页版。

****

****

****

****

本页为静态页面,不收集任何敏感数据。提交内容将跳转到你配置的 Issue/邮箱处理。

****

****

****

// ======== 配置 ========

const CONFIG = {

GH_OWNER: "timetrails-org",

GH_REPO:  "timetrails-org.github.io",

MAIL_TO:  "flywithbug@163.com",

QQ1_NUMBER: "574966492",

QQ1_INVITE_URL: "qm.qq.com/q/WmKwcZcZW",

QQ2_NUMBER: "185198503",

QQ2_INVITE_URL: "qm.qq.com/q/J1eYFA7i4…",

QQ2_IS_FULL: true,

IOS_APP_ID: "1634761411",

IOS_APP_COUNTRY: "cn",

GH_HOMEPAGE: "github.com/timetrails-…"

};

// ======== 工具 ========

const $ = (sel, root=document) => root.querySelector(sel);

const $$ = (sel, root=document) => Array.from(root.querySelectorAll(sel));

function copyTextFrom(selector){

const el = $(selector);

if(!el) return;

el.select?.();

navigator.clipboard.writeText(el.value || el.textContent || '')

.then(()=> alert('已复制到剪贴板'))

.catch(()=> alert('复制失败,请手动复制'));

}

function getAppStoreURLs(appId, country="cn"){

if(!appId) return { review:{web:"#",ios:"#"}, detail:{web:"#",ios:"#"} };

const webDetail = https://apps.apple.com/${encodeURIComponent(country)}/app/id${encodeURIComponent(appId)};

const iosDetail = itms-apps://itunes.apple.com/app/id${encodeURIComponent(appId)};

const webReview = ${webDetail}?action=write-review;

const iosReview = ${iosDetail}?action=write-review;

return { review:{ web:webReview, ios:iosReview }, detail:{ web:webDetail, ios:iosDetail } };

}

function isIOSDevice(){

const ua = navigator.userAgent || navigator.vendor || window.opera || "";

return /iPad|iPhone|iPod/.test(ua) || (navigator.platform && /iP(hone|od|ad)/.test(navigator.platform));

}

// ======== Tabs(无障碍 + 键盘 + URL 同步;默认 feedback) ========

const tablist = document.querySelector('.tabs[role="tablist"]');

const tabs = Array.from(tablist.querySelectorAll('[role="tab"]'));

const panels = tabs.map(t => document.getElementById(t.getAttribute('aria-controls')));

function setSelected(index, { focus = false } = {}) {

tabs.forEach((t, i) => {

const selected = i === index;

t.setAttribute('aria-selected', String(selected));

t.tabIndex = selected ? 0 : -1;

panels[i].hidden = !selected;

panels[i].setAttribute('aria-hidden', String(!selected));

});

if (focus) tabs[index].focus();

const key = tabs[index].dataset.tab;

try{

const url = new URL(location.href);

url.searchParams.set('tab', key);

history.replaceState(null, '', url.toString());

}catch{}

}

function selectByKey(key, opts){ const idx = tabs.findIndex(t => t.dataset.tab === key); setSelected(idx >= 0 ? idx : 0, opts); }

tabs.forEach((t, i) => t.addEventListener('click', () => setSelected(i, { focus:true })));

tablist.addEventListener('keydown', (e) => {

const current = tabs.findIndex(t => t === document.activeElement);

if (current < 0) return;

let next = null;

switch (e.key) {

case 'ArrowRight': next = (current + 1) % tabs.length; break;

case 'ArrowLeft':  next = (current - 1 + tabs.length) % tabs.length; break;

case 'Home':       next = 0; break;

case 'End':        next = tabs.length - 1; break;

case 'Enter':

case ' ':

setSelected(current, { focus:true });

e.preventDefault();

return;

default: return;

}

tabs[next].focus();

e.preventDefault();

});

// 默认“提交反馈”;仅当 ?tab=community|appstore 时切换

(function initTabs(){

const url = new URL(location.href);

const q = (url.searchParams.get('tab') || '').toLowerCase();

const key = (q === 'community' || q === 'appstore') ? q : 'appstore';

selectByKey(key, { focus:false });

})();

// ======== 初始化按钮/链接 ========

// 仓库

$('#ghLink').href = CONFIG.GH_HOMEPAGE;

// 复制群号按钮

btn.addEventListener('click', ()=> copyTextFrom(btn.getAttribute('data-copy'))); }); // QQ 群 $('#qq1-number').value = CONFIG.QQ1_NUMBER || ''; $('#btn-qq1-join').href = CONFIG.QQ1_INVITE_URL || '#'; $('#btn-qq1-url-copy').addEventListener('click', ()=>{ **if**(!CONFIG.QQ1_INVITE_URL){ alert('请先配置 QQ1_INVITE_URL'); **return**; } navigator.clipboard.writeText(CONFIG.QQ1_INVITE_URL).then(()=> alert('已复制加群链接')); }); $('#qq2-number').value = CONFIG.QQ2_NUMBER || ''; **const** join2 = $('#btn-qq2-join'); **if**(CONFIG.QQ2_IS_FULL){ join2.classList.add('disabled'); join2.setAttribute('aria-disabled','true'); join2.removeAttribute('href'); join2.title = '该群已满'; }**else**{ join2.href = CONFIG.QQ2_INVITE_URL || '#'; } $('#btn-qq2-url-copy').addEventListener('click', ()=>{ **if**(!CONFIG.QQ2_INVITE_URL){ alert('请先配置 QQ2_INVITE_URL'); **return**; } navigator.clipboard.writeText(CONFIG.QQ2_INVITE_URL).then(()=> alert('已复制加群链接')); }); // App Store(一级 Tab) (**function** initAppStore(){ **const** appId = (CONFIG.IOS_APP_ID || '').trim(); **const** panel = $('#panel-appstore'); **if**(!appId){ panel.querySelector('.btns').style.display='none'; panel.insertAdjacentHTML('beforeend','<p class="muted">未配置 App ID。</p>'); **return**; } **const** urls = getAppStoreURLs(appId, CONFIG.IOS_APP_COUNTRY || 'cn'); $('#btn-appstore-review').addEventListener('click', ()=>{ **const** url = isIOSDevice() ? urls.review.ios : urls.review.web; window.location.href = url; }); $('#btn-appstore-copy').addEventListener('click', ()=>{ navigator.clipboard.writeText(urls.review.web).then(()=> alert('已复制评价链接')); }); $('#btn-appstore-open').addEventListener('click', ()=>{ **const** url = isIOSDevice() ? urls.detail.ios : urls.detail.web; window.location.href = url; }); $('#btn-appstore-copy-detail').addEventListener('click', ()=>{ navigator.clipboard.writeText(urls.detail.web).then(()=> alert('已复制详情页链接')); }); })(); // 反馈模板与提交 **const** titleEl = $('#fb-title'); **const** typeEl = $('#fb-type'); **const** contentEl = $('#fb-content'); **const** contactEl = $('#contact'); **const** sysinfoEl = $('#sysinfo'); // 评分 **let** starsValue = 0; **const** stars = $$('#stars .star'); stars.forEach(s=>{ s.addEventListener('click', ()=>{ starsValue = Number(s.dataset.v); stars.forEach(x=> x.setAttribute('aria-checked', Number(x.dataset.v) <= starsValue)); }); }); **function** getSystemInfo(){ **return** [ `UA: ${navigator.userAgent}`, `平台: ${navigator.platform}`, `语言: ${navigator.language}`, `屏幕: ${window.screen.width}x${window.screen.height} @${window.devicePixelRatio}` ].join('\n'); } **function** buildMarkdown(){ **const** lines = []; **const** t = titleEl.value.trim() || '(待补充标题)'; lines.push(`### 描述`); lines.push(contentEl.value.trim() || '(详细描述/复现步骤/期望行为...)'); lines.push('\n### 类型'); lines.push(typeEl.value); lines.push('\n### 评分'); lines.push(starsValue ? `${'★'.repeat(starsValue)} (${starsValue}/5)` : '未评分'); lines.push('\n### 联系方式'); lines.push(contactEl.value.trim() || '未提供'); **if**(sysinfoEl.checked){ lines.push('\n### 系统信息'); lines.push('```'); lines.push(getSystemInfo()); lines.push('```'); } **return** { title: t, body: lines.join('\n') }; } **function** buildIssueURL(){ **if**(!CONFIG.GH_OWNER || !CONFIG.GH_REPO){ alert('请在代码中配置 GH_OWNER/GH_REPO'); **return** '#'; } **const** { title, body } = buildMarkdown(); **const** base = `https://github.com/${CONFIG.GH_OWNER}/${CONFIG.GH_REPO}/issues/new`; **return** `${base}?title=${encodeURIComponent(title)}&body=${encodeURIComponent(body)}`; } **function** buildMailto(){ **if**(!CONFIG.MAIL_TO){ alert('请在代码中配置 MAIL_TO'); **return** '#'; } **const** { title, body } = buildMarkdown(); **return** `mailto:${CONFIG.MAIL_TO}?subject=${encodeURIComponent('[反馈] ' + title)}&body=${encodeURIComponent(body)}`; } $('#btn-issue').addEventListener('click', (e)=>{ **const** url = buildIssueURL(); e.currentTarget.href = url; }); $('#btn-mail').addEventListener('click', (e)=>{ **const** url = buildMailto(); e.currentTarget.href = url; window.location.href = url; }); $('#btn-copy-template').addEventListener('click', ()=>{ **const** { title, body } = buildMarkdown(); **const** all = `# ${title}\n\n${body}`; navigator.clipboard.writeText(all).then(()=> alert('已复制反馈模板')).**catch**(()=> alert('复制失败')); }); **</script>****** **</body><rq-implicit-test-rule-widget** class**=**"rq-element" ****draggable**=**"true" ****style**=**"display: none;" **><template** shadowrootmode**=**"closed" **>****** **<style>** :host { **position**: **fixed** **!important**; **z-index**: 2147483647 **!important**; **top**: 16**px**; **right**: 16**px**; } #container { **border-radius**: 1rem; **padding**: 12**px** 1rem; **display**: flex; flex-direction: **column**; **color**: #fff; **font-family**: system-ui; **background**: #1a1a1a; **box-shadow**: 0**px** 0**px** 0**px** 4**px** **rgba**(255, 255, 255, 0.16), 0**px** 16**px** 32**px** 0**px** **rgba**(0, 0, 0, 0.24); **border**: 1**px** **solid** #5c5b5b; **cursor**: **move**; **width**: 420**px**; transition: **all** 0.2**s**; **position**: **relative**; **overflow-x**: **hidden**; } #container.minimized { **width**: fit-content; **height**: 56**px**; **padding**: 6**px**; **border-radius**: 20**px**; } #container.minimized #test-rule-container, #container.minimized #heading-container, #container.minimized #info-container { **display**: **none**; } #rule-name { **font-size**: 12**px**; **margin**: 4**px** 0; **font-weight**: **bolder**; **line-height**: 1.4; **max-width**: 290**px**; **overflow**: **hidden**; **text-overflow**: **ellipsis**; **white-space**: **nowrap**; } #heading-container { **display**: flex; justify-content: space-between; align-items: **center**; gap: 4**px**; } #logo-container { **display**: flex; align-items: **center**; gap: 6**px**; } #heading-container div { **display**: flex; flex-direction: **row**; flex-wrap: **wrap**; align-content: **center**; } #actions-container { **display**: flex; flex-direction: **row**; gap: 4**px**; } #actions-container **button** { **width**: 32**px**; **height**: 32**px**; **background**: **none**; **border**: **none**; **color**: #fff; transition: **all** 0.2**s**; **cursor**: **pointer**; **border-radius**: 4**px**; **padding**: 8**px**; **display**: flex; justify-content: **center**; align-items: **center**; flex-shrink: 0; } #actions-container #close-button svg { **width**: 10**px**; **height**: 10**px**; } #actions-container **button**:**hover** { **background**: #383838; } #explicit-widget-container { **background**: #282828; **border-radius**: 8**px**; **padding**: 12**px**; **margin-top**: 8**px**; } #implicit-widget-container { **padding**: 0 4**px**; **margin-top**: 8**px**; } #rule-status-container { **display**: flex; flex-direction: **row**; justify-content: space-between; align-items: **center**; } #test-rule-details { **display**: flex; justify-content: space-between; **margin-top**: 4**px**; } #info-container { **display**: flex; gap: 6**px**; **margin-top**: 8**px**; **padding**: 8**px** 0**px**; align-items: flex-start; gap: 4**px**; } #info-icon { align-self: flex-start; **width**: 16**px**; **height**: 16**px**; **color**: #bbb; flex-shrink: 0; **display**: inline-flex; align-items: **center**; justify-content: **center**; } #info-text { **color**: #fff; **font-size**: 11**px**; **line-height**: 17**px**; } #info-text .link { **color**: #639ff9; **font-size**: **inherit**; **line-height**: 17**px**; text-decoration-line: **underline**; text-decoration-style: **solid**; } #rule-status-comment { align-self: **center**; } #heading-logo { **height**: 16**px**; **width**: 16**px**; } #logo-text { **color**: #fff; **font-size**: 11**px**; **font-weight**: 500; } #view-result-btn { **all**: unset; **background**: #1e69ff; **color**: #fff; **border-radius**: 4**px**; **padding**: 4**px** 12**px**; **font-size**: 12**px**; } #view-result-btn:**hover** { **cursor**: **pointer**; **border-color**: #0f4cd9; **background**: #0f4cd9; } #rule-status { **display**: flex; flex-wrap: **nowrap**; justify-content: **center**; gap: 4**px**; } #rule-applied-status, #rule-not-applied-status { **display**: flex; align-items: **center**; gap: 4**px**; **letter-spacing**: 1**px**; **font-size**: 10**px**; **font-weight**: 500; **margin-top**: -3**px**; } #rule-applied-status { **color**: #28c07a; } #rule-not-applied-status { **color**: #e09400; } #minimized-details { **display**: **none**; **pointer-events**: **none**; flex-direction: **column**; justify-content: space-between; align-items: **center**; gap: 3**px**; } #minimized-details.visible { **display**: flex; **pointer-events**: **auto**; } #minimized-logo svg { **height**: 16**px**; **width**: 16**px**; } #test-rule-minimized-btn { **padding**: 0; **background**: **transparent**; **border**: **none**; } #test-rule-minimized-btn span { **padding**: 6**px**; **border-radius**: 50%; **display**: flex; justify-content: **center**; align-items: **center**; **cursor**: **pointer**; } #test-rule-minimized-btn span svg { **height**: 20**px**; **width**: 20**px**; } .secondary-text { **font-size**: 11**px**; **color**: #b0b0b5b3; } .hidden { **display**: **none** **!important**; } a { **color**: #9370db; } .warning { **background**: #5c3111; } .success { **background**: #104b2f; } #applied-rules-list { **margin-top**: 8**px**; **max-height**: 200**px**; **overflow-y**: **auto**; **padding-right**: 4**px**; } #applied-rules-list::-webkit-scrollbar { **width**: 8**px**; **background**: **transparent**; } #applied-rules-list::-webkit-scrollbar-thumb { **background**: #353535; **border-radius**: 8**px**; } #applied-rules-list-header { **font-size**: 13**px**; **color**: #fff; **font-weight**: 500; } .applied-rule-list-item { **border-radius**: 8**px**; **background**: #282828; **padding**: 12**px**; **color**: #fff; **font-size**: 13**px**; **font-weight**: 500; **letter-spacing**: 0.25**px**; **margin-top**: 8**px**; **cursor**: **pointer**; transition: **all** 0.2**s**; **display**: flex; justify-content: space-between; align-items: **center**; gap: 10**px**; } .applied-rule-list-item:**hover** { **background**: #383838; } .applied-rule-list-item:**hover** .applied-rule-arrow-icon { **opacity**: 1; } .applied-rule-list-item:**first-child** { **margin-top**: 0; } .applied-rule-item-details { **display**: flex; align-items: **center**; gap: 8**px**; } .applied-rule-icon { align-self: **center**; } .applied-rule-icon svg { **width**: 14**px**; **height**: 14**px**; **position**: **relative**; **top**: 2**px**; } .applied-rule-arrow-icon { transform: scale(1.2); align-self: **center**; transition: 0.2**s** **all**; **opacity**: 0; } .applied-rule-name { **max-width**: 300**px**; **overflow**: **hidden**; **text-overflow**: **ellipsis**; **white-space**: **nowrap**; } #settings-button { **position**: **relative**; } #settings-button[data-tooltip]:**hover**::**after** { **content**: **attr**(data-tooltip); **position**: **absolute**; **z-index**: 1; **right**: 0**px**; **top**: 34**px**; **width**: 158**px**; **max-width**: 232**px**; **padding**: 6**px** 12**px**; **color**: #fff; **font-size**: 13**px**; **font-style**: **normal**; **font-weight**: 400; **line-height**: 150%; **border-radius**: 4**px**; **background**: #000; **box-shadow**: 0**px** 8**px** 16**px** 0**px** **rgba**(0, 0, 0, 0.16); } .test-rule-widget-progress-bar { **height**: 6**px**; **background**: #3c7ff3; **position**: **absolute**; **bottom**: 0; **left**: 0; **right**: 0; **width**: 100%; animation-name: progressBar; animation-delay: 50**ms**; animation-direction: **normal**; animation-duration: 5**s**; animation-fill-mode: **forwards**; animation-play-state: **running**; animation-timing-function: **linear**; } #container:**hover** .test-rule-widget-progress-bar { animation-play-state: **paused**; } @keyframes progressBar { **from** { **width**: 100%; } **to** { **width**: 0%; } } **</style>****** **<div** id**=**"container" **>****** **<div** id**=**"minimized-details" **>****** **<div** id**=**"minimized-logo" **><svg** width**=**"251" ****height**=**"251" ****viewBox**=**"0 0 251 251" ****fill**=**"none" ****xmlns**=**"http://www.w3.org/2000/svg" **>****** **<path** d**=**"M124.408 245.868V188.238C104.504 188.529 82.7544 186.943 60.1611 182.339L60.0545 182.235V216.575C60.0545 223.437 60.7942 228.978 62.2736 233.201C63.7529 237.423 65.8487 240.722 68.5609 243.097C71.5197 245.472 75.0949 247.055 79.2864 247.847C83.7246 248.903 88.7791 249.43 94.4501 249.43C100.121 249.43 105.792 249.035 111.463 248.243C117.381 247.451 121.695 246.66 124.408 245.868Z" ****fill**=**"white" **></path>****** **<path** d**=**"M124.408 169.866H127.147C152.451 169.356 180.05 165.599 203.571 154.848L203.554 154.824C214.403 148.49 223.773 139.518 231.663 127.906C239.553 116.295 243.498 102.308 243.498 85.9467C243.498 59.821 234.868 39.1052 217.609 23.7992C200.349 8.4932 174.707 0.84021 140.681 0.84021C128.106 0.84021 116.271 1.6319 105.176 3.21527C94.0803 4.53475 84.341 6.77789 75.9578 9.94465C71.0266 11.7919 67.0816 14.2989 64.1228 17.4657C61.4106 20.3685 60.0545 24.5909 60.0545 30.1327V96.5095C71.3817 98.242 114.382 101.954 124.038 101.543V57.8418C126.75 57.314 129.216 56.9182 131.435 56.6543C133.654 56.3904 136.612 56.2584 140.311 56.2584C153.379 56.2584 162.871 58.8974 168.789 64.1753C174.953 69.1893 178.035 76.7103 178.035 86.7384C178.035 96.7664 175.323 104.419 169.899 109.697C164.474 114.711 157.077 117.218 147.708 117.218H124.038V117.008C123.974 117.109 123.915 117.21 123.861 117.313C87.9797 115.588 66.1922 114.066 60.0404 113.204L60.0399 113.194L42.9936 111.502C41.4373 111.348 40.2998 109.961 40.4529 108.404L41.3754 99.0229C41.6423 96.3086 38.2948 94.8199 36.4615 96.8375L0.888601 135.986C-0.0859492 137.058 -0.0924867 138.694 0.873451 139.776L29.4492 171.786C31.0921 173.627 34.1369 172.635 34.3782 170.181L35.0406 163.445C35.2015 161.809 36.7162 160.655 38.336 160.934L60.0545 164.671V164.802L60.1611 164.695C73.4489 166.933 97.4782 170.207 124.408 169.908V169.866Z" ****fill**=**"white" **></path>****** **<path** d**=**"M175.076 223.305L153.644 186.439C181.486 183.412 203.494 177.208 215.783 172.246C220.496 178.807 225.172 185.139 229.813 191.241C238.443 202.589 245.224 212.881 250.155 222.117C247.689 231.354 243.128 238.479 236.471 243.493C230.06 248.243 222.786 250.618 214.65 250.618C209.225 250.618 204.541 249.958 200.596 248.639C196.651 247.319 193.199 245.472 190.24 243.097C187.281 240.722 184.569 237.819 182.103 234.388C179.638 230.958 177.295 227.263 175.076 223.305Z" ****fill**=**"white" **></path>****** **</svg></div>****** **<button** id**=**"test-rule-minimized-btn" **><span** class**=**"success" **><svg** width**=**"16" ****height**=**"16" ****viewBox**=**"0 0 16 16" ****fill**=**"none" ****xmlns**=**"http://www.w3.org/2000/svg" **>****** **<mask** id**=**"mask0_2834_1705" ****style**=**"mask-type:alpha" ****maskUnits**=**"userSpaceOnUse" ****x**=**"0" ****y**=**"0" ****width**=**"16" ****height**=**"16" **>****** **<rect** width**=**"16" ****height**=**"16" ****fill**=**"#D9D9D9" **></rect>****** **</mask>****** **<g** mask**=**"url(#mask0_2834_1705)" **>****** **<path** d**=**"M7.13333 10.4833L11.1667 6.46667L10.2 5.5L7.13333 8.56667L5.76667 7.2L4.81667 8.16667L7.13333 10.4833ZM8 14.5333C7.1 14.5333 6.25 14.3667 5.45 14.0333C4.66111 13.6889 3.96667 13.2222 3.36667 12.6333C2.77778 12.0333 2.31111 11.3389 1.96667 10.55C1.63333 9.75 1.46667 8.9 1.46667 8C1.46667 7.08889 1.63333 6.23889 1.96667 5.45C2.31111 4.66111 2.77778 3.97222 3.36667 3.38333C3.96667 2.78333 4.66111 2.31667 5.45 1.98333C6.25 1.63889 7.1 1.46667 8 1.46667C8.91111 1.46667 9.76111 1.63889 10.55 1.98333C11.3389 2.31667 12.0278 2.78333 12.6167 3.38333C13.2167 3.97222 13.6833 4.66111 14.0167 5.45C14.3611 6.23889 14.5333 7.08889 14.5333 8C14.5333 8.9 14.3611 9.75 14.0167 10.55C13.6833 11.3389 13.2167 12.0333 12.6167 12.6333C12.0278 13.2222 11.3389 13.6889 10.55 14.0333C9.76111 14.3667 8.91111 14.5333 8 14.5333ZM8 13.15C9.43333 13.15 10.65 12.65 11.65 11.65C12.65 10.65 13.15 9.43333 13.15 8C13.15 6.56667 12.65 5.35 11.65 4.35C10.65 3.35 9.43333 2.85 8 2.85C6.56667 2.85 5.35 3.35 4.35 4.35C3.35 5.35 2.85 6.56667 2.85 8C2.85 9.43333 3.35 10.65 4.35 11.65C5.35 12.65 6.56667 13.15 8 13.15Z" ****fill**=**"#28C07A" **></path>****** **</g>****** **</svg></span></button>****** **</div>****** **<div** id**=**"heading-container" **>****** **<div** id**=**"logo-container" **>****** **<span** id**=**"heading-logo" **><svg** xmlns**=**"http://www.w3.org/2000/svg" ****width**=**"20" ****height**=**"20" ****viewBox**=**"0 0 20 20" ****fill**=**"none" **>****** **<path** d**=**"M7.98439 15.6591V11.9822C6.71565 12.0008 5.32921 11.8996 3.88899 11.6058L3.8822 11.5992V13.7902C3.8822 14.2279 3.92935 14.5815 4.02366 14.8509C4.11796 15.1203 4.25156 15.3307 4.42445 15.4823C4.61305 15.6338 4.84095 15.7348 5.10814 15.7853C5.39105 15.8527 5.71325 15.8864 6.07475 15.8864C6.43625 15.8864 6.79774 15.8611 7.15924 15.8106C7.53645 15.7601 7.8115 15.7096 7.98439 15.6591Z" ****fill**=**"url(#paint0_linear_2826_2722)" **></path>****** **<path** d**=**"M7.98439 10.81H8.15909C9.77207 10.7775 11.5313 10.5378 13.0307 9.85185L13.0296 9.85029C13.7212 9.4462 14.3184 8.87374 14.8214 8.13291C15.3243 7.39208 15.5758 6.49972 15.5758 5.45582C15.5758 3.78896 15.0257 2.46725 13.9255 1.4907C12.8253 0.514153 11.1907 0.0258789 9.02172 0.0258789C8.22015 0.0258789 7.46572 0.0763902 6.75845 0.177412C6.05117 0.261597 5.43035 0.404713 4.89596 0.606758C4.58162 0.724617 4.33014 0.884567 4.14154 1.08661C3.96865 1.27182 3.8822 1.54121 3.8822 1.89479V6.12974C4.60426 6.24028 7.34528 6.47711 7.96081 6.45089V3.66268C8.1337 3.629 8.29087 3.60375 8.43233 3.58691C8.57378 3.57008 8.76239 3.56166 8.99815 3.56166C9.83116 3.56166 10.4363 3.73003 10.8135 4.06677C11.2064 4.38667 11.4029 4.86653 11.4029 5.50633C11.4029 6.14614 11.23 6.63442 10.8842 6.97116C10.5384 7.29106 10.0669 7.45101 9.46966 7.45101H7.96081V7.43758C7.95673 7.44399 7.95296 7.45048 7.94952 7.45705C5.66229 7.347 4.27345 7.24991 3.8813 7.19488L3.88127 7.19426L2.79467 7.08629C2.69546 7.07644 2.62295 6.98802 2.63269 6.88881L2.69152 6.29001C2.70853 6.11695 2.49506 6.02204 2.37823 6.15072L0.11053 8.64856C0.0484818 8.71691 0.0480731 8.82113 0.109583 8.89009L1.93123 10.9325C2.03594 11.0499 2.2301 10.9867 2.24547 10.8302L2.28772 10.4002C2.29797 10.2959 2.39452 10.2223 2.49778 10.2401L3.8822 10.4785V10.4869L3.88899 10.4801C4.73603 10.6229 6.26777 10.8318 7.98439 10.8127V10.81Z" ****fill**=**"url(#paint1_linear_2826_2722)" **></path>****** **<path** d**=**"M11.2143 14.2195L9.8481 11.8674C11.6229 11.6743 13.0258 11.2785 13.8091 10.9619C14.1095 11.3805 14.4076 11.7844 14.7035 12.1738C15.2536 12.8978 15.6858 13.5544 16.0002 14.1437C15.843 14.733 15.5522 15.1876 15.1279 15.5075C14.7192 15.8106 14.2556 15.9621 13.7369 15.9621C13.3911 15.9621 13.0925 15.92 12.841 15.8359C12.5895 15.7517 12.3695 15.6338 12.1809 15.4823C11.9923 15.3307 11.8194 15.1455 11.6622 14.9267C11.505 14.7078 11.3557 14.4721 11.2143 14.2195Z" ****fill**=**"url(#paint2_linear_2826_2722)" **></path>****** **<path** d**=**"M0.0637207 8.77344C0.0645556 8.81521 0.0798203 8.85677 0.109546 8.8901L1.93119 10.9325C2.03591 11.0499 2.23006 10.9867 2.24543 10.8302L2.28769 10.4002C2.29793 10.2959 2.39449 10.2223 2.49774 10.2401L3.88216 10.4785V10.4869L3.88896 10.4801C4.73599 10.6229 6.26774 10.8318 7.98435 10.8127V10.81H8.01892V9.21903L0.0637207 8.77344Z" ****fill**=**"url(#paint3_linear_2826_2722)" **></path>****** **<path** d**=**"M8.01896 9.21922L0.0637569 8.77363C0.0628642 8.72897 0.0784679 8.68408 0.11053 8.64876L2.37823 6.15092C2.49506 6.02224 2.70853 6.11715 2.69152 6.29021L2.63269 6.88901C2.62295 6.98822 2.69546 7.07664 2.79467 7.08649L3.88127 7.19446L3.8813 7.19508C4.27345 7.2501 5.66229 7.3472 7.94952 7.45725C7.95296 7.45068 7.95673 7.44419 7.96081 7.43778V7.45121H8.01896V9.21922Z" ****fill**=**"url(#paint4_linear_2826_2722)" **></path>****** **<defs>****** **<lineargradient** id**=**"paint0_linear_2826_2722" ****x1**=**"3.76992" ****y1**=**"-1.50587" ****x2**=**"13.212" ****y2**=**"19.2702" ****gradientUnits**=**"userSpaceOnUse" **>****** **<stop** stop-color**=**"#1EA0FF" **></stop>****** **<stop** offset**=**"1" ****stop-color**=**"#004EEB" **></stop>****** **</lineargradient>****** **<lineargradient** id**=**"paint1_linear_2826_2722" ****x1**=**"3.76992" ****y1**=**"-1.50587" ****x2**=**"13.212" ****y2**=**"19.2702" ****gradientUnits**=**"userSpaceOnUse" **>****** **<stop** stop-color**=**"#1EA0FF" **></stop>****** **<stop** offset**=**"1" ****stop-color**=**"#004EEB" **></stop>****** **</lineargradient>****** **<lineargradient** id**=**"paint2_linear_2826_2722" ****x1**=**"3.76992" ****y1**=**"-1.50587" ****x2**=**"13.212" ****y2**=**"19.2702" ****gradientUnits**=**"userSpaceOnUse" **>****** **<stop** stop-color**=**"#1EA0FF" **></stop>****** **<stop** offset**=**"1" ****stop-color**=**"#004EEB" **></stop>****** **</lineargradient>****** **<lineargradient** id**=**"paint3_linear_2826_2722" ****x1**=**"11.8972" ****y1**=**"9.83355" ****x2**=**"5.27078" ****y2**=**"8.10349" ****gradientUnits**=**"userSpaceOnUse" **>****** **<stop** stop-color**=**"#1EA0FF" **></stop>****** **<stop** offset**=**"1" ****stop-color**=**"#004EEB" **></stop>****** **</lineargradient>****** **<lineargradient** id**=**"paint4_linear_2826_2722" ****x1**=**"2.63345" ****y1**=**"4.98671" ****x2**=**"14.7158" ****y2**=**"6.53243" ****gradientUnits**=**"userSpaceOnUse" **>****** **<stop** stop-color**=**"#1EA0FF" **></stop>****** **<stop** offset**=**"1" ****stop-color**=**"#004EEB" **></stop>****** **</lineargradient>****** **</defs>****** **</svg></span>****** **<span** id**=**"logo-text" **>** requestly **</span>****** **</div>****** **<div** id**=**"actions-container" **>****** **<button** id**=**"settings-button" ****class**=**"" ****data-tooltip**=**"Hide widget in app settings" **><svg** width**=**"16" ****height**=**"13" ****viewBox**=**"0 0 16 13" ****fill**=**"none" ****xmlns**=**"http://www.w3.org/2000/svg" **>****** **<path** d**=**"M10.6167 6.91667L9.58333 5.88333C9.62778 5.46111 9.5 5.1 9.2 4.8C8.9 4.48889 8.53889 4.35556 8.11667 4.4L7.08333 3.36667C7.22778 3.31111 7.37778 3.27222 7.53333 3.25C7.68889 3.21667 7.84444 3.2 8 3.2C8.77778 3.2 9.43889 3.47222 9.98333 4.01667C10.5278 4.56111 10.8 5.22222 10.8 6C10.8 6.15556 10.7833 6.31111 10.75 6.46667C10.7278 6.62222 10.6833 6.77222 10.6167 6.91667ZM12.8333 9.13333L11.9667 8.26667C12.3667 7.95556 12.7278 7.61667 13.05 7.25C13.3833 6.87222 13.6611 6.45556 13.8833 6C13.3389 4.87778 12.5333 4 11.4667 3.36667C10.4111 2.72222 9.25556 2.4 8 2.4C7.71111 2.4 7.42778 2.41667 7.15 2.45C6.87222 2.48333 6.6 2.53889 6.33333 2.61667L5.36667 1.65C5.78889 1.48333 6.21667 1.36667 6.65 1.3C7.09444 1.23333 7.54444 1.2 8 1.2C9.58889 1.2 11.0389 1.63333 12.35 2.5C13.6722 3.35556 14.6222 4.52222 15.2 6C14.9556 6.63333 14.6278 7.21111 14.2167 7.73333C13.8167 8.24444 13.3556 8.71111 12.8333 9.13333ZM12.8 12.5L10.6333 10.3333C10.2111 10.4889 9.77778 10.6056 9.33333 10.6833C8.9 10.7611 8.45556 10.8 8 10.8C6.41111 10.8 4.95556 10.3722 3.63333 9.51667C2.32222 8.65 1.37778 7.47778 0.800001 6C1.04444 5.36667 1.36667 4.78889 1.76667 4.26667C2.16667 3.74444 2.63333 3.27222 3.16667 2.85L1.5 1.18333L2.35 0.333334L13.65 11.65L12.8 12.5ZM4.01667 3.71667C3.62778 4.02778 3.26667 4.37222 2.93333 4.75C2.6 5.11667 2.32778 5.53333 2.11667 6C2.66111 7.12222 3.46111 8.00556 4.51667 8.65C5.58333 9.28333 6.74444 9.6 8 9.6C8.28889 9.6 8.57222 9.58333 8.85 9.55C9.12778 9.50556 9.40556 9.45 9.68333 9.38333L8.93333 8.63333C8.77778 8.68889 8.62222 8.73333 8.46667 8.76667C8.31111 8.78889 8.15556 8.8 8 8.8C7.22222 8.8 6.56111 8.52778 6.01667 7.98333C5.47222 7.43889 5.2 6.77778 5.2 6C5.2 5.84444 5.21667 5.68889 5.25 5.53333C5.29445 5.37778 5.33333 5.22222 5.36667 5.06667L4.01667 3.71667Z" ****fill**=**"white" **></path>****** **</svg></button>****** **<button** id**=**"minimize-button" ****class**=**"hidden" **><svg** width**=**"16" ****height**=**"16" ****viewBox**=**"0 0 16 16" ****fill**=**"none" ****xmlns**=**"http://www.w3.org/2000/svg" **>****** **<mask** id**=**"mask0_2826_2732" ****style**=**"mask-type:alpha" ****maskUnits**=**"userSpaceOnUse" ****x**=**"0" ****y**=**"0" ****width**=**"16" ****height**=**"16" **>****** **<rect** width**=**"16" ****height**=**"16" ****fill**=**"#D9D9D9" **></rect>****** **</mask>****** **<g** mask**=**"url(#mask0_2826_2732)" **>****** **<path** d**=**"M6.27083 4.75L8.5 6.95833V5.27083H10V9.5H5.75V8H7.4375L5.22917 5.79167L6.27083 4.75ZM13.75 14C13.125 14 12.5903 13.7847 12.1458 13.3542C11.7153 12.9097 11.5 12.375 11.5 11.75C11.5 11.125 11.7153 10.5972 12.1458 10.1667C12.5903 9.72222 13.125 9.5 13.75 9.5C14.375 9.5 14.9028 9.72222 15.3333 10.1667C15.7778 10.5972 16 11.125 16 11.75C16 12.375 15.7778 12.9097 15.3333 13.3542C14.9028 13.7847 14.375 14 13.75 14ZM1.5 14C1.08333 14 0.729167 13.8542 0.4375 13.5625C0.145833 13.2708 1.78814e-07 12.9167 1.78814e-07 12.5V3.5C1.78814e-07 3.08333 0.145833 2.72917 0.4375 2.4375C0.729167 2.14583 1.08333 2 1.5 2H14.5C14.9167 2 15.2708 2.14583 15.5625 2.4375C15.8542 2.72917 16 3.08333 16 3.5V8H14.5V3.5H1.5V12.5H10V14H1.5Z" ****fill**=**"white" **></path>****** **</g>****** **</svg>****** **</button><button** id**=**"close-button" ****class**=**"" **><svg** width**=**"8" ****height**=**"8" ****viewBox**=**"0 0 8 8" ****fill**=**"none" ****xmlns**=**"http://www.w3.org/2000/svg" **>****** **<path** d**=**"M0.167368 0.167368C0.390524 -0.0557892 0.752333 -0.0557892 0.97549 0.167368L4 3.19188L7.02451 0.167368C7.24767 -0.0557892 7.60948 -0.0557892 7.83263 0.167368C8.05579 0.390524 8.05579 0.752333 7.83263 0.97549L4.80812 4L7.83263 7.02451C8.05579 7.24767 8.05579 7.60948 7.83263 7.83263C7.60948 8.05579 7.24767 8.05579 7.02451 7.83263L4 4.80812L0.97549 7.83263C0.752333 8.05579 0.390524 8.05579 0.167368 7.83263C-0.0557892 7.60948 -0.0557892 7.24767 0.167368 7.02451L3.19188 4L0.167368 0.97549C-0.0557892 0.752333 -0.0557892 0.390524 0.167368 0.167368Z" ****fill**=**"#E3E3E3" **></path>****** **</svg>****** **</button></div>****** **</div>****** **<div** id**=**"test-rule-container" **>****** **<div** id**=**"implicit-widget-container" **>****** **<div** id**=**"applied-rules-list-header" **>** Rules applied on this page **</div>****** **<div** id**=**"applied-rules-list" **></div>****** **<div** class**=**"test-rule-widget-progress-bar" **>****** **</div></div></div>****** **<div** id**=**"info-container" ****class**=**"hidden" **>****** **<div** id**=**"info-icon" **><svg** xmlns**=**"http://www.w3.org/2000/svg" ****width**=**"13" ****height**=**"13" ****viewBox**=**"0 0 24 24" ****fill**=**"none" **>****** **<path** d**=**"M12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12C22 17.5228 17.5228 22 12 22ZM12 20C16.4183 20 20 16.4183 20 12C20 7.58172 16.4183 4 12 4C7.58172 4 4 7.58172 4 12C4 16.4183 7.58172 20 12 20ZM11 7H13V9H11V7ZM11 11H13V17H11V11Z" ****fill**=**"currentColor" **></path>****** **</svg></div>****** **<div** id**=**"info-text" **></div>****** **</div>****** **</div>****** **</template></rq-implicit-test-rule-widget></html>******