Skip to main content
Glama
ceciliomichael

Feedback Collector MCP

index.css11.1 kB
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif; margin: 0; padding: 0; height: 100vh; width: 100vw; background-color: white; overflow: hidden; } .feedback-container { width: 100%; height: 100%; display: flex; flex-direction: column; background-color: white; overflow: hidden; } /* Drag and drop styling */ .feedback-container.drag-over { background-color: #f0f8ff; border: 2px dashed #4285f4; box-sizing: border-box; } .feedback-header { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; border-bottom: 1px solid #eee; flex-shrink: 0; } .feedback-header h2 { margin: 0; font-size: 18px; font-weight: 500; } /* Timer styles */ .timer-container { display: flex; align-items: center; gap: 8px; } .timer-display { font-size: 16px; font-weight: 500; color: #555; background-color: #f5f5f5; border-radius: 4px; padding: 4px 8px; min-width: 40px; text-align: center; } .timer-display.warning { color: #ea4335; font-weight: bold; } .timer-toggle { background: none; border: none; cursor: pointer; width: 28px; height: 28px; display: flex; justify-content: center; align-items: center; border-radius: 50%; background-color: #f5f5f5; color: #555; padding: 0; transition: background-color 0.2s ease; } .timer-toggle:hover { background-color: #e8e8e8; } .timer-toggle svg { width: 16px; height: 16px; } /* Snippet section styles */ .snippet-section { padding: 10px 20px; border-bottom: 1px solid #eee; flex-shrink: 0; } .snippet-dropdown-container { position: relative; margin-right: auto; /* Push other buttons to the right */ } .btn-snippet { background-color: #f5f5f5; color: #333; display: flex; align-items: center; gap: 5px; } .btn-snippet:hover { background-color: #e8e8e8; } .dropdown-arrow { font-size: 10px; transition: transform 0.2s ease; } .dropdown-arrow.open { transform: rotate(180deg); } .snippet-dropdown { position: absolute; left: 0; bottom: 100%; margin-bottom: 5px; background-color: white; border: 1px solid #ddd; border-radius: 4px; width: 250px; max-height: 300px; overflow-y: auto; box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1); z-index: 100; display: none; /* Hidden by default */ } .snippet-dropdown.show { display: block; } .snippet-header { display: flex; justify-content: space-between; align-items: center; padding: 8px 12px; border-bottom: 1px solid #eee; } .snippet-header span { font-weight: 500; font-size: 14px; color: #555; } .snippet-action-btn { width: 24px; height: 24px; border-radius: 50%; background-color: #4285f4; color: white; border: none; font-size: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; padding: 0; } .snippet-action-btn:hover { background-color: #3367d6; } .snippet-list { list-style: none; padding: 0; margin: 0; overflow-y: auto; scrollbar-width: thin; scrollbar-color: #ddd #f5f5f5; } /* Custom scrollbar for WebKit browsers (Chrome, Safari) */ .snippet-list::-webkit-scrollbar { width: 6px; } .snippet-list::-webkit-scrollbar-track { background: #f5f5f5; border-radius: 3px; } .snippet-list::-webkit-scrollbar-thumb { background-color: #ddd; border-radius: 3px; } .snippet-list.scrollable { max-height: 180px; /* 5 items * 36px height */ overflow-y: auto; } .snippet-item { padding: 8px 12px; border-bottom: 1px solid #eee; cursor: pointer; display: flex; justify-content: space-between; align-items: center; transition: background-color 0.2s ease; height: 36px; /* Fixed height for each item */ box-sizing: border-box; } .snippet-item:last-child { border-bottom: none; } .snippet-item:hover { background-color: #e8e8e8; } .snippet-item-name { flex: 1; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 13px; } .snippet-item-actions { display: flex; gap: 5px; opacity: 0; transition: opacity 0.2s ease; } .snippet-item:hover .snippet-item-actions { opacity: 1; } .snippet-action { width: 20px; height: 20px; background: none; border: none; cursor: pointer; font-size: 12px; color: #555; display: flex; justify-content: center; align-items: center; border-radius: 3px; } .snippet-action:hover { background-color: rgba(0, 0, 0, 0.1); } .no-snippets-message { padding: 10px; text-align: center; color: #888; font-size: 13px; font-style: italic; } /* Modal styles */ .modal { display: none; position: fixed; z-index: 1000; left: 0; top: 0; width: 100%; height: 100%; background-color: rgba(0, 0, 0, 0.5); } .modal-content { background-color: white; margin: 10% auto; width: 80%; max-width: 500px; border-radius: 8px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); } /* Smaller modal for delete confirmation */ #delete-confirm-modal .modal-content { max-width: 350px; margin: 15% auto; } #delete-confirm-modal .modal-body { padding: 15px 20px; } #delete-confirm-modal .modal-footer { padding: 10px 20px; } #delete-confirm-modal p { margin: 5px 0; } .snippet-to-delete-name { font-weight: 500; color: #ea4335; margin-top: 10px !important; font-size: 14px; } .modal-header { padding: 15px 20px; border-bottom: 1px solid #eee; display: flex; justify-content: space-between; align-items: center; } .modal-header h3 { margin: 0; font-size: 18px; font-weight: 500; } .close-modal { font-size: 24px; color: #aaa; cursor: pointer; } .close-modal:hover { color: #555; } .modal-body { padding: 20px; } .modal-footer { padding: 15px 20px; border-top: 1px solid #eee; display: flex; justify-content: flex-end; gap: 10px; } .form-group { margin-bottom: 15px; } .form-group label { display: block; margin-bottom: 5px; font-weight: 500; font-size: 14px; } .form-group input, .form-group textarea { width: 100%; padding: 8px 12px; border: 1px solid #ddd; border-radius: 4px; font-family: inherit; font-size: 14px; box-sizing: border-box; } .form-group textarea { min-height: 100px; resize: vertical; } .feedback-content { padding: 20px; flex: 1; display: flex; flex-direction: column; overflow: hidden; min-height: 0; } /* Image upload and preview styles */ .image-section { margin-top: 10px; margin-bottom: 15px; display: flex; flex-direction: column; flex-shrink: 0; } .image-upload { display: flex; align-items: center; margin-bottom: 10px; flex-wrap: wrap; } .image-upload-label { display: inline-flex; align-items: center; background-color: #f5f5f5; padding: 8px 12px; border-radius: 4px; cursor: pointer; border: 1px dashed #ccc; transition: all 0.2s ease; margin-right: 10px; } .image-upload-label:hover { background-color: #e8e8e8; } .upload-icon { font-size: 18px; margin-right: 8px; } .upload-text { font-size: 14px; color: #555; } #image-input { display: none; } .image-preview-container { max-width: 300px; max-height: 200px; position: relative; margin-top: 10px; display: none; border: 1px solid #ddd; border-radius: 4px; overflow: hidden; } .image-preview { max-width: 100%; max-height: 100%; display: block; } .remove-image-btn { position: absolute; top: 5px; right: 5px; width: 24px; height: 24px; border-radius: 50%; background-color: rgba(0, 0, 0, 0.5); color: white; border: none; font-size: 16px; cursor: pointer; display: flex; justify-content: center; align-items: center; padding: 0; } .remove-image-btn:hover { background-color: rgba(0, 0, 0, 0.7); } .prompt-container { overflow-y: auto; max-height: 300px; margin-bottom: 15px; flex-shrink: 1; border-radius: 4px; scrollbar-width: thin; scrollbar-color: #ddd #f5f5f5; } /* Custom scrollbar for WebKit browsers (Chrome, Safari) */ .prompt-container::-webkit-scrollbar { width: 8px; } .prompt-container::-webkit-scrollbar-track { background: #f5f5f5; border-radius: 4px; } .prompt-container::-webkit-scrollbar-thumb { background-color: #ddd; border-radius: 4px; } .textarea-container { flex: 1; min-height: 150px; display: flex; flex-direction: column; overflow: hidden; margin-bottom: 10px; transition: height 0.2s ease; } .feedback-prompt { margin-top: 0; margin-bottom: 15px; color: #333; } .markdown-content { font-size: 14px; line-height: 1.5; } /* Markdown styles */ .markdown-content h1 { font-size: 1.8em; margin-top: 0.8em; margin-bottom: 0.5em; } .markdown-content h2 { font-size: 1.5em; margin-top: 0.7em; margin-bottom: 0.5em; } .markdown-content h3 { font-size: 1.3em; margin-top: 0.6em; margin-bottom: 0.5em; } .markdown-content p { margin: 0.5em 0; } .markdown-content code { background-color: #f5f5f5; padding: 2px 4px; border-radius: 3px; font-family: monospace; font-size: 0.9em; } .markdown-content pre { background-color: #f5f5f5; padding: 10px; border-radius: 4px; overflow-x: auto; } .markdown-content pre code { background-color: transparent; padding: 0; } .markdown-content blockquote { border-left: 4px solid #ddd; padding-left: 10px; margin-left: 0; color: #666; } .markdown-content ul, .markdown-content ol { padding-left: 20px; } .markdown-content a { color: #4285f4; text-decoration: none; } .markdown-content a:hover { text-decoration: underline; } .markdown-content table { border-collapse: collapse; width: 100%; margin: 1em 0; } .markdown-content th, .markdown-content td { border: 1px solid #ddd; padding: 8px; text-align: left; } .markdown-content th { background-color: #f5f5f5; } textarea { width: 100%; height: 100%; padding: 12px; border: 1px solid #ddd; border-radius: 4px; resize: none; font-family: inherit; font-size: 14px; box-sizing: border-box; overflow-y: auto; } .feedback-divider { height: 1px; background-color: #eee; flex-shrink: 0; } .feedback-actions { display: flex; justify-content: space-between; align-items: center; padding: 16px 20px; flex-shrink: 0; } .action-buttons { display: flex; gap: 10px; } .btn { padding: 8px 16px; border-radius: 4px; font-size: 14px; font-weight: 500; cursor: pointer; border: none; } .btn-submit { background-color: #4285f4; color: white; } .btn-approve { background-color: #34a853; color: white; } .btn-enough { background-color: #fbbc05; color: black; } .btn-cancel { background-color: #ea4335; color: white; } .image-upload-hint { font-size: 12px; color: #777; margin-top: 5px; width: 100%; } /* Error modal styles */ #error-modal .modal-content { max-width: 350px; margin: 15% auto; } #error-modal .modal-body { padding: 15px 20px; } #error-modal .modal-footer { padding: 10px 20px; justify-content: center; } #error-modal p { margin: 10px 0; text-align: center; }

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ceciliomichael/feedbackjs-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server